iOS11から利用可能になったCoreMLですが、学習済みのmlmodelファイルによってアプリサイズが肥大化することや、識別結果が出力されるまでに長い時間を要するなどの課題があります。このトークでは画像識別のネットワークを例に挙げ、.mlmodelファイルの作成においてどこが課題解決のボトルネックになっているかを、機械学習の計算コストの視点から簡単に解説し、その改善策を紹介します。
iOS11から利用可能になったCoreMLですが、学習済みのmlmodelファイルによってアプリサイズが肥大化することや、識別結果が出力されるまでに長い時間を要するなどの課題があります。このトークでは画像識別のネットワークを例に挙げ、.mlmodelファイルの作成においてどこが課題解決のボトルネックになっているかを、機械学習の計算コストの視点から簡単に解説し、その改善策を紹介します。
C++はSwiftコンパイラの実装に使われていたり、Objective-C++でiOSアプリ開発にも使える言語です。
本トークでは、iOSアプリ開発になじみの言語であるSwiftを起点としてiOSアプリエンジニア向けにC++を紹介します。
C++での業務経験がある私が、C++を書くときに気にするポイントも交えてお話しできればと思います。
我々はアプリのコードやバンドルされるライブラリだけでなく、様々なツールや仕組みによって開発を進めます。それらのツールにはSwiftPMに依存するものが数多く存在します。SwiftPMはOSSであり、普段の開発では触れることがないようなAPIも垣間見え、非常に魅力的なコードです。SwiftPMやそれを使うOSSから、使い方、実装方法を学び、iOS開発にやってくる前に先取りしてしまいましょう。
プッシュ通知はさまざまな進化を遂げてきました。かつてはテキストだけしか表示できなかったものが、画像やカスタムアクションを付けられるようになり、iOS 12でも様々な機能が追加されています。
このトークでは、プッシュ通知でどのようなことができるようになったか、iOSのバージョンごとに時系列を追って紹介していきます。開発時に混乱しがちな「どのバージョンからどのようなプッシュ通知の機能が使えるのか」を整理できるようお伝えできればと思います。
みなさんは業務でも個人でもで、iPhone,iPad,macOS等のマルチデバイスに対応し、同期を行うということはなかなか無いと思います。
私は個人で実際にそれに対応したメモアプリをリリースしました。その中でデバイス間の同期をどのようにして行われているのか。
実際にマルチデバイス(iPhone,iPad,macOS)を対応するにおいて何を考慮しないといけないのかをお話しできればと思います。
アニメーションを強力にサポートするLottieを使えばリッチな体験を提供できます。Lottieの得意、不得意な表現はもちろん、導入する際に気になるパフォーマンスや使われる技術の背景、アニメーションデータ作成のワークフローと管理・データに対するプリプロセス等網羅的にお話します。これを聞けば明日からLottieを活用できる?!リッチなアニメーションでユーザーを魅了したい方必見!
iOSを開発をする上で一度はどんな設計でアプリを開発していったらいいのか考えるかと思います。
私たちはアプリを開発を始めてもうすぐ一年が経とうとするアプリに対してVIPER+RxSwiftを取り入れました。
このトークでは、なぜ、どのようにどこまでしてそれを導入したのか、実際にどうなったか、さらには実際の画面に応じた実装がどうなっているのかを実際のコードを交えながら説明できればと思います。
マッチングアプリでは性別や課金状態、年齢確認の有無等でできることが変わります。
まずこのトークではその状態管理をFlux ArchitectureやFirebaseのRealtime Databaseを用いたことを話します。
またFluxを導入した際にわかった問題点を元にMVVM + Flux Architectureに挑戦したことをお話できればと思います。
MVVMでRxSwiftを使ったアプリを昨年7月にリリースしました。当時、会社にiOSエンジニアは自分だけだったため、テストは1人でする必要がありました。そこで、人手のテストを極力減らすため、UIViewとUIViewController以外を全てユニットテストしてみることにしました。そこで得た、DIとMockの活用法やViewModelのテスト方法など、実戦で使えるテスト手法を紹介します。
4年続いているサービスに4月からJoinしてもうすぐ4ヶ月になります。
これから数年間サービスを成長させていくために、クライアントサイドの技術戦略として、どのようなことを考え変えようとし、実際どのようなことを変えていってるのかをお話できればと思います。
ユニットテスト書いてるけど、イマイチしっくり来ないな...
ログ取り一応やってるけど、コレでいいのかな...
これらの悩みが、MVIアーキテクチャの採用によって一気に解決しました。
話すこと (予定)
・MVIアーキテクチャとは?
・実例 iOSで実装するMVI
・実装量が増えがちなアーキテクチャの時短術
・MVIでのテスト戦略
・MVIでのログ取り
メルカリの新アーキテクチャー”MicroViewController”にReduxライクステートが導入されましたが、そのステートの副作用管理問題に悩まされた時期もありました。副作用を優先すべきケースと優先すべきでないケースの明確化、プロパティーの順序を意識することなく安全なステート変更の保証など、上手く副作用を管理する仕組みのThunkBagをこのトークで紹介致します。
Firebase の RealTime Database に代わるものとして、昨年10月に発表された Cloud Firestore 。未だベータ版ですが、そちらを弊社マッチングアプリ「タップル誕生」に導入して、運用している話をしたいと思います。すでに出来上がっているシステムにどうやって組み込んだのか、どのくらい簡単なのか、リスクヘッジはどうなってるか、などのお話をしたいと思います。
iOSのARKit、AndroidのARCore、それぞれ特徴は似ていますが本来別々で実装する必要があります。ですが、Unityを利用することでAR体験に必要なロジック等をできるだけ共通化させることができます。
このトークでは、Unityを利用したARの開発方法から、マルチプラットフォーム向けのARアプリを作るための方法などをUnityの前提知識なしでも分かるように紹介します。
QuickとNimbleというテスト用ライブラリを知っていますか?XCTestをラップし、テストコードをより楽しく、より効率的に書けます。これらはSwiftとObjective-Cの両方から使え、またSwiftPMにも対応し、Linux(サーバーサイドSwift)でも使えます。
コアコントリビューターが、このMixed LanguageかつCross-Platformという特徴をどのように実現・メンテナンスしているかを解説します。
タブレット型端末の中でもトップシェアを占めているiPad端末は、現在私たちの日常において無くてはならないものになっています。
私が担当したiPadリニューアル対応では、主要ページの回遊率が2倍、画面によっては3倍に向上しました。
このトークではiPadの縦・横画面対応やiPhoneと異なるUIを導入した話も交えながら、
iPadに最適化した際の設計やテクニックについてお話します。
運用段階のサービスで新規の機能実装した場合などに、QAテスト時にログの発火ミスなどのバグがあがってるくことがしばしばあるかと思います。
そこで画面操作に合わせたログの発火テストを自動化する試みをしました。
はじめはXCUITestで実装してみましたが様々な壁にぶつかったため、途中から方針を変えてUnitテストで実装することにしました。
本トークでは、実装する上での問題点や改善方法について話して行きたいと思います。
アプリ運営者はユーザに役立つ情報を届けるためにプッシュ通知を使っています。
しかし、一介のアプリユーザとして考えたとき、プッシュ通知はあまりいい印象がありません。届きすぎてうるさかったり、とどいた情報があまり役立たなかったりするからです。
このトークではどういう風にすれば、通知を許可してもらえて、長く使ってもらえるのかをiOS12で追加された機能も盛り込みつつサンプルコードを紹介しながら考えていきます。