iOS開発のCI環境とデプロイ環境は、多くのサービスが提供され、ユーザーはその中から選択することができるようになりました。
その中で、Jenkinsと標準APIだけでCI環境とデプロイ手段を構築した弊社環境を紹介するとともに、弊社でその選択をした理由とメリットをお話しします。
我々はアプリのコードやバンドルされるライブラリだけでなく、様々なツールや仕組みによって開発を進めます。それらのツールにはSwiftPMに依存するものが数多く存在します。SwiftPMはOSSであり、普段の開発では触れることがないようなAPIも垣間見え、非常に魅力的なコードです。SwiftPMやそれを使うOSSから、使い方、実装方法を学び、iOS開発にやってくる前に先取りしてしまいましょう。
iPhoneユーザは、アプリの画面を戻る際に戻るボタンが画面下から遠くに位置するために、指が届かず不便と思われている方が多いと思います。この不便さを解消するために、私が開発するアプリでは画面を下にひっぱることで戻れるようにしました。このトークでは、この機能の実装方法やつまづいた点、そしてリリースした結果がどうだったのかについてお話できればと思います。
アニメーションを強力にサポートするLottieを使えばリッチな体験を提供できます。Lottieの得意、不得意な表現はもちろん、導入する際に気になるパフォーマンスや使われる技術の背景、アニメーションデータ作成のワークフローと管理・データに対するプリプロセス等網羅的にお話します。これを聞けば明日からLottieを活用できる?!リッチなアニメーションでユーザーを魅了したい方必見!
マッチングアプリでは性別や課金状態、年齢確認の有無等でできることが変わります。
まずこのトークではその状態管理をFlux ArchitectureやFirebaseのRealtime Databaseを用いたことを話します。
またFluxを導入した際にわかった問題点を元にMVVM + Flux Architectureに挑戦したことをお話できればと思います。
4年続いているサービスに4月からJoinしてもうすぐ4ヶ月になります。これから数年間サービスを成長させていくために、クライアントサイドの技術戦略として、どのようなことを考え変えようとし、実際どのようなことを変えていってるのかをお話できればと思います。
MVVMでRxSwiftを使ったアプリを昨年7月にリリースしました。当時、会社にiOSエンジニアは自分だけだったため、テストは1人でする必要がありました。そこで、人手のテストを極力減らすため、UIViewとUIViewController以外を全てユニットテストしてみることにしました。そこで得た、DIとMockの活用法やViewModelのテスト方法など、実戦で使えるテスト手法を紹介します。
開発時間に占めるデバッグ時間の割合は少なくないため、この時間の短縮は開発速度を上げるためにとても重要です。この発表では、実際の中規模なアプリ開発で70%増もの開発速度向上を支えたデバッグノウハウを初心者にもわかりやすく紹介します。
このノウハウには、効果が高いデバッグの5W1Hの解説や、リビルドなしでデバッグする方法、便利なライブラリの紹介を含みます。開発速度が気になっている方はぜひ聞いてみてください!
今年のtry! SwiftからSwiftコンパイラーへのコントリビュートが流行る中、Swiftコンパイラ初心者がPRを出してマージされるまでの必要最低限の知識をまとめて紹介致します。
複数のiPhoneを、連携させたことがありますか?
一面にならんだ数十台のiPhoneにシンクロナイズドスイミングのような全く同じ表示をさせる……単純に見えますが、実は技術的にはとても高度なテクニックを必要とします。
フレームレート60fpsのiPhoneで、ぴったりあった動作を実現するためには端末間に許されたずれは、16ミリ秒以下。
これを実現するには、どんな要素技術、どんな設計、どんなテクニックを使えばよいでしょうか。
UIテストには実行時間がかかりやすいものです。
そのため、UIテストを諦めてたりしているケースもあるのではないでしょうか。
本Cfpが通ったら、リリースされているiOSアプリのUIテストを1から実装します。
そして、最初に実装したUIテストの実行にかかっていた時間を、色々な方法を用いて実行時間を短縮させていきます。
実際にどのような方法を用いながら、どこまでの時間を短縮できるかを説明します。
Swiftで記述されたiOSアプリでも、grpc-swiftを利用してgRPC通信をある程度手軽に利用可能になります。
gRPCを利用すると、通常の通信を行うよりも通信速度は速く通信量も少なく済み、更には双方向での通信を行うことができます。
今回は、gRPCの概要、grpc-swiftの導入方法、実際にプロジェクトで利用する際の応用的なことや、grpc-swiftにコントリビュートしたときの経験談などをお話させていただきます。
Firebase の RealTime Database に代わるものとして、昨年10月に発表された Cloud Firestore 。未だベータ版ですが、そちらを弊社マッチングアプリ「タップル誕生」に導入して、運用している話をしたいと思います。すでに出来上がっているシステムにどうやって組み込んだのか、どのくらい簡単なのか、リスクヘッジはどうなってるか、などのお話をしたいと思います。
昨年転職した会社でRxSwiftを用いた開発を経験しましたが、予想通りの大苦戦でした。
具体的な実装方法に困っても、Web上にはマーブルダイアグラムと呼ばれる概念の解説が多く、初心者向けの情報を得ることが出来ませんでした。
このトークではRxSwiftを聞いたことがあるけれど使ったことはない・実態がよくわからない・どんなメリットがあるのかわからない…
そんな方達へ、これ以上RxSwiftでつまずかないために本気で発表します。
ViewControllerは機能追加や修正のたびにすくすくと成長し、肥大化していきます。その原因の一つとして、そのViewControllerが多くの役割を担っていることが多いです。その改善方法としてContainer View Controllerを活用する方法があります。このトークではContainer View Controllerを活用することで関心を分離し、肥大化しにくくテスタビリティの高い実装を作るアプローチを紹介します。
iOSのARKit、AndroidのARCore、それぞれ特徴は似ていますが本来別々で実装する必要があります。ですが、Unityを利用することでAR体験に必要なロジック等をできるだけ共通化させることができます。
このトークでは、Unityを利用したARの開発方法から、マルチプラットフォーム向けのARアプリを作るための方法などをUnityの前提知識なしでも分かるように紹介します。
QuickとNimbleというテスト用ライブラリを知っていますか?XCTestをラップし、テストコードをより楽しく、より効率的に書けます。これらはSwiftとObjective-Cの両方から使え、またSwiftPMにも対応し、Linux(サーバーサイドSwift)でも使えます。
コアコントリビューターが、このMixed LanguageかつCross-Platformという特徴をどのように実現・メンテナンスしているかを解説します。
WWDC2018のセッション"Desiging Fluid Interfaces"で、アプリ起動・終了のアニメーション中にも別の画面操作ができるよって話があったので、モーダルViewControllerの開閉アニメーションでそれを実現してみました。作り方を紹介します。
タブレット型端末の中でもトップシェアを占めているiPad端末は、現在私たちの日常において無くてはならないものになっています。
私が担当したiPadリニューアル対応では、主要ページの回遊率が2倍、画面によっては3倍に向上しました。
このトークではiPadの縦・横画面対応やiPhoneと異なるUIを導入した話も交えながら、
iPadに最適化した際の設計やテクニックについてお話します。