Firestoreはアプリの命である「データ」を扱うBackend as a serviceの1つです。
先日私達はこのFirestore+Firebaseプラットフォームをすべてのバックエンドに使いサーバーレスなiOSアプリを開発しました。
その体験をもとに「まるでローカルDBを取り扱うように」Webバックエンドの連携を実現するFirestoreが持つシンプルで柔軟なデータストア層についてお話しします。
非同期処理のコードを改善するために、Swiftに適した形のasync/awaitがCore Teamから提案されています。iOSアプリは非同期処理のかたまりです。async/awaitの導入はiOSアプリ開発に大きな影響を与えると予想されます。本トークでは、提案の文書を元にiOSアプリ開発がどのように変わりそうかを説明します。また、実際にコードを書く演習時間を設け、iOSアプリ開発におけるasync/awaitを習得してもらいます。
iOS 12の発表を機に、iOS 9やiOS 10などの古いiOSのサポート終了を考えている方も多いと思います。
サポートバージョンはできるだけ少なくして開発コストを減らし、iOS 12対応に集中したいですよね。
このトークでは、古いiOSのサポート終了を考える際の、
色んなアプリを使っていて「メニューがなぜモーダル表示?ドロワー表示の方が良いのでは?」など、UIに疑問を覚えたことありませんか?
しかしUIを考える側になってみると、ユーザからUIの指摘を受けるなんてこと、よくあるのではないでしょうか。
私はWWDC18に参加してAppleのデザイナーに直接質問してきました。そこで得た知見をもとに「〇〇の場合に理想的なUIは△△ではないか」という話をしたいと思います。
ドメイン駆動設計においてキモとなるのは、そのDDDの概念を元に如何にプロダクトの対象領域であるドメインをモデル化し
そしてそれをどのようにプログラム設計に落し込むかどうか、だと思います。
このセッションではまずDDDを知らない方の為にその概念を説明し、そして弊社のiOSアプリに対してどのように落とし込んでいるのかについてお話できればと思います。
巷で噂となっているPinterestによって開発されている、UIが猛烈に高速化されるTexture(AsyncDisplayKit)ですが、
非常に巨大なフレームワークであり、UIKitをラップする形でAPIが提供されています。
既存のアプリで「UIが重い!Textureを入れて速くしたい!」「でも途中から導入できるものなの?」という問題に対し、
実際のところ、導入は可能なのか?どのように?についてお話しします。
ReactNative流行ってますね
ところで,覚えてますか?
金属っぽい名前のクロスプラットフォームアプリがJSで作れるぜ!って言っていた開発環境
以前Zaimアプリはそれで書かれていました.そして,昨年3月Swiftに完全移行しました
なぜ,移行を決心したのか.いかに苦しみ苦しみ抜いてリリースしたのか.果たしてZaimのエンジニアはSwiftにして幸せになれたのか
移行や改善をしていく上で得られた知見を発表します
Swiftが発表されてその言語仕様を知ったとき、これを使えば理想の画像ライブラリを作れると思いました。その理想を詰め込んで作ったのがEasyImagyです。画像周りはややこしいことが多いですが、EasyImagyを使えば驚くほど簡単に、Swiftyに画像を編集することができます。この1年でGitHubのスターも200を超えたので、初歩的な使い方から作者だけが知る便利な新機能まで、30分かけてEasyImagyの魅力を語り倒します。
長い間サービスを運用するとコードには旧時代のプラクティス、意図のわからない仕様、統一されていないアーキテクチャなど様々な課題が積み上がっていきます。
リリースしてから8年が経過し巨大になったじゃらんアプリも例外ではなく、生産性をあげるべく様々な取り組みを行ってきました。
このセッションでは事業の制約と技術的な課題の中でどのようなことを行ってきた(もしくは行っている)かをお話したいと思います。
創業2年の新潟のWeb会社に転職し、同時にアプリ事業を持ち込みました。社会人2年目のペーペーが転職と同時にアプリ文化を持ち込んだとき...いわゆる”不毛”と言われる環境下でのスタートでした。
その中でこっそり自社Webメディアを両OSアプリ化した話や、アプリ文化が無い会社組織との付き合い方、アプリに対する相場感やスキル難易度によるギャップなど、新潟のiOSエンジニアならではの苦悩を題材に地方アプリ市場の現状や未来についてお話しします。
ARKitが登場してから早くも1年以上が経過しました。今ではAppStoreには数多くのARKit搭載アプリがリリースされています。
さらにWWDC2018ではARKit2が登場し、AppleもARに関してかなり注力していることが伺えます。
今日iOSエンジニアを名乗るのであれば、ARKitを扱えて当然の世代になりつつあります。
本セッションではARKitの基本からどのようなことが実現可能かをわかりやすく解説します。
MVCやMVVMといったViewとModelをいい感じに設計する方法が流行っています
モバイルアプリ開発では,VとMの関係性と同じくらいかそれ以上に,VとVの関係性,画面遷移の管理が大切です.何も考えずに開発するとVCやVMなどに画面遷移のコードを書いてしまい,コードは肥大化し,メンテナンス性が低下していきます.そこでCoordinatorという設計パターンを導入し,画面遷移をいい感じに管理していく手法について説明します
僕らの組織では複数のプロジェクトチームがひとつのアプリに機能を追加・修正するという体制で開発を行っており、リリース日程や実装機能の調整など、コミュニケーションにどうしても時間がかかっていました。この問題を解決するためにfastlaneを使ったタスクの自動化だけでなく、機械的なペースに合わせるリリースフローを実現しようとしているので紹介します。(発表する頃にはうまくいってるはず…)
アプリの開発中にビルドしたアプリをCrashlyticsBetaやDeployGateなどにアップロードし、手元で動作確認できるようにしているチームは多いと思います。僕たちもそういったサービスを使ってきましたが、様々な課題が出てきたため自分たちの使い方にあったシステムを新しく作りました。どういった課題がありどういうツールを用意したのか、そしてどうリリースフローが改善されたか話します。
Swift、特にRxSwiftでの状態管理、コンポーネントへの情報の伝播に徐々に慣れた頃、React Nativeでアプリを作った僕は、宣言的に状態管理を行わず、コンポーネントが更新される様子を見て、状態管理への捉え方を変えざるを得ませんでした。
クロスプラットフォームの特性ではなく、あくまでiOS開発の側面で、React Nativeはマインドセットをどう変えていくのかというテーマで発表したいと思います。
ネイティブアプリとWebアプリの両方の利点を持ち、お互いのギャップを埋めることができる技術として WPA (Progressive Web Apps) が注目されています。AWS Amplifyを利用するとPWAのService Workersを簡単に登録し、利用することができます。このセッションでは、AWS Amplifyを利用してPWAを実装する手順を分かりやすくデモを交えながら解説します。
Swift for TensorFlowはTensorFlowに関連したプロジェクトの中でも異彩を放つものです。そこではTensorFlowではなく、Swiftの開発が行われていました。このトークではそうなった経緯について、「機械学習に必要なものはなにか」という問への真正面からの取り組みと、Graph Program Extractionを含むその問への解答を中心に扱います。
iOS App市場は飽和しつつあります。アプリがダウンロードされたとしても80%はアクティブユーザーにならない。80-90%のアプリは一度使われただけで削除されてしまう、などアクティブユーザー獲得の難易度はあがってきています。本セッションではカスタマーの情報をリアルタイムに分析し最適なマーケティングを行うためのアーキテクチャを紹介します。
社内で抱えてたいくつかの問題を解決するために我々は全アプリ開発チームでReduxを導入しました。その後会員系アプリから銀行系アプリまで10個弱のアプリ開発が行われてきました。今回はそれらを通して得られたナレッジを話せる限り話そうと思います。
現在予定している内容
-iOSでのStore/State設計について
-ビジネスロジックをSwaggerみたいに定義、自動生成できないか
等
初めてのiOSアプリ開発プロジェクトにアサインされた半年前、それまでなんとなくでコードを書いていた自分を改めるべく、アーキテクチャの勉強を始めました。ググれば多くのアーキテクチャパターンの解説やサンプルを見つけることができますが、実際の開発ではそれらの情報だけでは足りず、自分なりの解釈が必要になってきます。
このトークでは、アーキテクチャ初心者だった自分がどのようにアーキテクチャを勉強し、実際にMVVMを使って開発したかをお話します。