アプリの中の複雑な状態はステートマシンなどを導入することで管理しやすくなります。
しかし、コードだけを見ても流れが分かりにくかったり、状態遷移図を作ってもコードに合わせて更新していくのが面倒だったり、継続したメンテナンスは大変です。
このトークでは、シンプルなステートマシンとSourceKit・Graphvizなどのツールを使ってコードから状態遷移図を自動で生成する仕組みを作り、継続的にメンテナンスしやすくする方法をお話しします。
社内で抱えてたいくつかの問題を解決するために我々は全アプリ開発チームでReduxを導入しました。その後会員系アプリから銀行系アプリまで10個弱のアプリ開発が行われてきました。今回はそれらを通して得られたナレッジを話せる限り話そうと思います。
現在予定している内容
-iOSでのStore/State設計について
-ビジネスロジックをSwaggerみたいに定義、自動生成できないか
等
iPadで,コーディングをしたり,プログラミングの教科書のような使い方ができるSwift Playgrounds.最近では,カメラやBluetoothのAPIが解放され,Swift Playgrounds Bookを個人でアプリを通じて配布できるようにもなりました.この発表では,カメラの画像をリアルタイムに処理できるサンプルを例に,Swift Playgroundsのおもしろさ,Bookの開発および公開方法について解説します.
初めてのiOSアプリ開発プロジェクトにアサインされた半年前、それまでなんとなくでコードを書いていた自分を改めるべく、アーキテクチャの勉強を始めました。ググれば多くのアーキテクチャパターンの解説やサンプルを見つけることができますが、実際の開発ではそれらの情報だけでは足りず、自分なりの解釈が必要になってきます。
このトークでは、アーキテクチャ初心者だった自分がどのようにアーキテクチャを勉強し、実際にMVVMを使って開発したかをお話します。
gRPCはGoogleが開発したハイパフォーマンスなRPC(Remote Procedure Call)プロトコルです。
Firebase SDKにも組み込まれていて、間接的に使った方も多いと思います。
トークでは、アプリからの通信の選択肢として、RESTやGraphQLに加えてgRPCも選べるように、
gRPC自体の解説、grpc-swiftの開発状況や現状の課題をデモを交えお伝えします。
アプリ開発と言うとほとんどがAndroid・iOS両OS開発するシーンがほとんどかと思われます。
その中でiOSでは容易に実装できるけどAndroidではキツイ!と言う実装やその逆のパターンも数多くあります。
本セッションではAndroid実装を考慮するとiOSでやってはいけないアンチパターンを両0S開発の経験を基にお話しします。
Swift for TensorFlow を実際に Xcode Playground で動かし簡単なテンソル積などを実行するところもデモします。
それを通して Swift for TensorFlow の技術的なコンセプトや、TensorFlow にとどまらない Swift 自体の技術的な拡張などについて分かりやすく説明できればと思います。
iOS の dynamic framework 開発のイントロダクションになります。
framework 開発で得た以下の地検などを説明さ背てもらおうと思っています。
Create ML, Core ML, Vision Frameworkなどのフレームワークが登場し,専門家でなくても機械学習をアプリケーションに取り入れることができるようになってきました.しかし,実装が簡単になっても,機能を評価,検証する必要性はなくなりません.この発表では,機械学習において評価を議論するにあたって重要な概念である学習性能と汎化性能の違い,学習および評価に必要なデータの数などについて解説します.
テストを書くのって面倒ですよね?理由は様々ですが、ひとつは入力値と期待値を用意する手間だと思います。ベタに用意すると再利用性が低く、また構造変化に弱いというデメリットがあります。その解決策としてFactoryがあります。
ただ、実際はFactoryを用意するのも手間でコストがかかってしまいます。今回はFactoryを自動生成することで、再利用性が高く構造変化に強いツールを作りました。そのツールの特徴とコード生成についてお話します。
「機械学習を知らなくても機械学習を利用した画像分類をする方法」について伝授します!機械学習するために必要な「学習済みモデル」をAzure Cognitive Services の Custom Vision Services を利用して 教師ありの画像分類モデルを作成し、iOS 端末で画像分類を行います。 機械学習に興味はあるけど自分で勉強する時間はない!といった方へのトークです。
Swiftには実行するメソッドを効率的に決定する機構があります。
しかし、静的型付け言語であるにも関わらず動的に決定せざるを得ないパターンや、finalやprivateなどの修飾子がパフォーマンスに影響するパターンなど、実際にはどのような動きをしているのでしょうか。
このトークではSwiftコンパイラの中からその疑問を紐解いていきます。
UICollectionViewに複数の種類のセルがある場合、どのセルがいつ表示されるのか把握するのが難しくなります。この問題を解消する手段の1つには、コンテンツの宣言的な定義が考えられます。
このトークでは、はじめにコンテンツの宣言的な定義の実現方法を説明します。続いて、宣言的な定義を導入した時のコードの見通し、レイアウトの役割分担、差分更新、アニメーションなどの面におけるメリットとデメリットを解説します。
UIViewControllerから画面遷移処理を切り離すための設計パターンに、AppCoordinatorとRouterというものがあります。
この二つは名前の違いこそあれど意味するところは同じで、「方言」だと考えています。
このトークではUIViewControllerから画面遷移処理を切り出す理由と方法、名前と役割の対応にまどわされない開発チームになるための、設計に対する姿勢について話します。
例えば「ファイルサイズ」はInt型に見えますが、
メガバイト表記とキロバイト表記は同じものでも、数字としては違うので、
Int, Double自体とは少し異なった性質があります。
そんなときにも便利な、
Codableを使ってエンコード時に値になりすまして表現する方法を、
その他の実用例も交えながらご紹介します。
ずっと前に書かれた,Himotokiを使ったコード.複雑怪奇な秘伝のタレとして,拡張され,パッチワークされてきた,Zaim アプリを支えるAPI部分をCodable 対応するために行ったことを一部始終を話します.さて,今6月13日なのですが,まだ完了していません
それどころか,フルスクラッチで作り直したい!という欲望も顔を出しています.欲望に打ち勝ち,移行に無事成功した体験談になるはずで
MicroViewController
という仕組みを導入したことで我々はメンバーの誰もが経験したことのない開発速度とスケーラビリティを手に入れました。
「10人規模で画面の開発が可能」「全てのVCとVMは500行未満」「手軽に値レベルで実現可能なMock」「50のVCで構成される一画面」
MicroViewController
を取り入れた画面設計について、我々のベストプラクティスを紹介します。
Storyboardの扱いでしばしば挙げられる問題点の1つとして、文字列を扱う事によるtypoや変更への弱さが挙げられます。
ここではProtocol Oriented Programmingを用いて、そのデメリットをできる限り解消していきます。
Swiftの型システムを実装するSemaモジュールはswiftcの中でも1番巨大で複雑ですが、普段お世話になっているTypeCheckerの動きがわかるようになったらSwiftへの理解が一歩深まりそうですし、なにより型の話って楽しいですよね!!
このトークではSemaの実装をチョット読めるようになることを目標に、Swiftの型システムがもつ特徴を「型システム入門」や実際の実装を参考にしながら簡単に解説します。
3Dプログラミングに興味があるけどすごく難しそう…
そう思う方は少なくないと思います。
しかし実は3D描画の仕組みはとても単純な処理の組み合わせです。
その仕組みさえ理解してしまえば最初に乗り越えるべき壁はとても低くなります。
本トークでは3Dプログラミングの基礎をMetalで解説します。
他のプラットフォームではOpenGLもまだまだ現役です。
Metalとの差異を踏まえつつ、まとめて学んでしまいましょう。