はい!そこのあなた!
Firebaseの話かと思った?あれもWebSocket使ってるもんね!
違います!自社でWebSocket通信用サーバーを立てて、WebとiOSアプリで同時対応した話です!
HTTP通信じゃだめなんです!WebSocketでやる必要があるんです!
決して正解ではないかもしれないですけど、プロダクトに導入して大変な思いをした経験を話します!!
PWAに代表されるように、昨今のWeb技術もネイティブに迎合するように着実に進化しています。Appleもその流れに沿ってSafariにServiceWorkerやWebRTCを実装しています。しかし、iOSアプリエンジニアにとってブラウザはSafariだけではありません。本トークではWeb最新技術が三種類あるiOSブラウザへの対応状況と、ブラウジングとは違ったWebViewの使用例を紹介します。
ユーザ体験向上のためにトランジションやアニメーションが果たす役割は大きい.
Human Interface Guidelinesでは,これらの項目は大幅な更新もなく抽象的な記述に留まっている.そのため,デベロッパの裁量に委ねられているのが現状である.
本発表では,Material Designや各種ライブラリでの表現・実装などを参照し,アプリのトランジションをよりリッチにするための実践方法やTipsを紹介する.
UIWindowが複数存在する場合、preferredStatusBarStyleやprefersStatusBarHiddenが呼ばれるViewControllerはどのWindowから選ばれるかを、調べた限りの情報で説明します。
かなり独特のロジックになっており、コントロールするのもかなり難しいです。
RxSwiftを利用していると必ず使うことになる dipose メソッド。dispose が実際にどのスレッドで実行されるか意識していますか?
本セッションではdisposeが実行されるスレッドによってクラッシュが発生する可能性を提示し、より安全にdisposeするために取りうる方法を説明します。
Xcode Source Editor Extensionの登場によって死んだ感のあるXcode Pluginですが、実現したい機能としてSource Editor Extensionでは実現できないものについては、まだ生きているものもいくつか存在しています。そんなXcode Plugin開発のイマを紹介します。
天啓。それは人智を超えた神の導き。
今まで悩んでたものが、突然のひらめきで解決した経験がある人はいると思います。
このひらめきを自由自在に起こせたら素晴らしいと思いませんか。
そんな「天の声」を聴くための心理学や思考のトレーニングを紹介します。
自由自在とまではいきませんが、「発動確率」は多少なりとも上がるとおもいますよ。
※宗教の勧誘ではありません。
プロダクトの顔ともいえる名前。
プロダクトの成功・失敗を分ける大きな要因はもちろん中身ですが、名前で惹きつけられることは確実にあるので名前にもこだわりたいですよね。
単なるフィーリングや製作者の自己満足ではなく、誰が、どのように使うかを考えてつけなくてはいけません。
新規プロダクトに関わる方、独自サービスを作る方、ぜひ参考にしてください。
そうでない方も、もしかしたら新たな気付きがあるかもしれませんよ。
Objective-C++という言語をご存じでしょうか。iOSアプリ開発に利用できる言語でC++とObjective-C両方の記述ができる言語です。つまりiOSアプリ開発においてC++が使えるということです。
そこで、iOSアプリ開発をするまではC++でアプリ開発をしていた私が、C++フル活用してiOSアプリを作ってみた話を紹介します。
昨年iMac Proが発売され、そのスペックに多くのiOSエンジニアが魅了されています。
少しずつ企業でも採用されてきましたが、比較的高価なマシンであるが故手が出せていない企業が大半なのではないでしょうか。
このトークでは、新卒エンジニアが初めてiOSアプリ開発を経験し、そのビルド時間と向き合い如何に会社からiMac Proを買ってもらうに至ったかを紹介します。
現開発環境やそこでのビルド時間の計測/測定方法も紹介していきます。
長く続くアプリ開発において、複数のアーキテクチャが積層のように負債となってしまうことは、割と多くの現場で起きているのではないでしょうか。
より良い開発をしていくためには負債の返済という、痛みを伴う対応を迫られるときがいつかきます。
このトークでは自分が直近で直面した負債の返済について話をします。
どう返済していったのか、チームとどうやって足並みをそろえたのか、様々な反省をお伝えします。
Dependency Injection(DI)はモジュール同士を疎結合にするテクニックで、設計やテストを考える際に非常に有効です。
このトークでは「DIがどういうものかわからない」という方のために、サンプルコードとともにわかりやすく解説します。
また、DIを使ってコードを書く際にはライブラリを用いる/用いない方法がありますが、その差異はどんなところにあるのか、僕がライブラリを用いない方法を推す理由についても解説します。
Metalに限らず、昨今の3D描画APIは「フラグメントシェーダー」と呼ばれるプログラム可能な陰影処理の仕組みを備えています。
本来はポリゴンで作った形状に対して、その表面の陰影や質感を表現するために各ピクセルの色を決定する機能です。
しかし本来とは全く違う使い方をすることで実に驚くべき描画が可能となります。
フラグメントシェーダーの仕組みとテクニックを交えつつ、フラグメントシェーダーによる様々な表現を紹介します。
2017年に同様のタイトルでLT発表をしました。
あれから1年。 前回紹介したbuddybuildはAppleに買収され、CircleCIはmacOSでも2.0対応になり、さらに日本にオフィスを設立しました。
昨年からのBitriseの勢いも止まりません。
この1年間でiOSアプリ開発におけるCIサービス周りがどう変化してきたのか、そして各CIサービスの差について説明します。
大人数による大規模アプリで、コンパイラの出す警告を放置したら——
日々増加する警告数に危機感を抱いたエンジニア達が、チーム開発において警告と戦うために行っていたこととは?
警告を消し去る意味に立ち返り、目の前の警告に様々な手段で挑んでいたさなか、あることをきっかけに警告数はついに4000を超える!追い詰められた彼らは“秘策”を練るが……。
人類と警告の終わりなき戦いをダイジェスト版でお届けします。
Swiftを愛してやまない皆様、そもそも"SWIFT"という単語がどんな意味かご存知でしょうか。検索結果でお察しの通り、この言葉はSwift以外でも名付けに使われています。
本LTでは、Swiftを愛する皆様に向けて、"SWIFT"の語源から鳥、同名の言語、OpenStackのあの子、著名人物に自動車等々を一挙紹介します。
"SWIFT"に立ち返れば、もっとSwiftが大好きになること間違いなし。
私は業務でiOSとほぼ同じ量のAndroidのコードを書いたり読んだりしています。先日、iOSアプリ全体のアーキテクチャを考え直す際に、参考にしたのは実はAndroid(kotlin)のオープンソースプロジェクトでした。アーキテクチャの参考にしたオープンソースプロジェクトの概要とそのiOSへの転用について、また、iOS以外のプラットフォームの開発経験や情報収集が自身の軸となる仕事にどういった影響を及ぼしているかなどを語ろうと思います。
3年前にQiitaで「UIScrollViewにおけるAutoLayoutについてまとめる」という記事を投稿しました。
今でも「いいね」がつき続ける、僕の投稿した中では一番の人気記事です。(といっても100ですが)
UIScrollViewをAutoLayoutで実装するのはかなりクセがあり、初心者のハマりポイントです。
なので、分かりやすくiOSDCで解説をしてみようと思います!
2017年12月1日朝起きたら,Zaim のせいでiPhoneがクラッシュすると Twitter 上で騒がれていました.
前回のリリースから多少は時間がたっていたし,そもそもアプリが iPhone をクラッシュさせるなんてできるの?
本当にZaimのせいだったのか,そもそも何が起こっていたのか.何が原因だったのか.
わかったこと,推測できたこと,喋っても問題なさそうなこと喋ります.
iOSDCのトーク応募が今年も始まりました。一人複数のCfP応募ができるので、たくさん書くぞ!と息巻きますが、実際にたくさん書くのはちょっと大変です。面倒なことはなんでも自動化したくなるのがエンジニアです。今年分含めたiOSDC3年分のCfPを使って、CfPを自動生成します。
LTでは、次の内容を取り扱います。
・マルコフ連鎖
・LSTM
・WWDC18で公開されたNaturalLanguage.framework