普段とりあえず入れて何気なく使われているCrashlytics
CrashlyticsはCrash検知だけでなく、Error・Bug検知にも使えます
本当は必要なErrorを取り逃がしていませんか?
Errorの設計や、実装方法と活用を紹介します
Flutterで利用したアプリケーションでは初期状態だとパッケージ管理ツールはCocoaPodsが設定されます。
今までSwiftで開発をしていた人はCocoaPodsだけではなくCarthageやSwift Package Managerを利用している人もいると思います。
実際に試してみた
mamariではオンボーディング強化のため、昨年末からFirebase Remote Configを用いたABテストを繰り返しています。
このトークでは、ABテストを継続的に続けることで得た知見をできるだけシェアしたいと思います。
モニタリングはサービスの開発・運用において重要な要素です。
しかし、ノウハウがある程度確立しているバックエンドやインフラ領域に比べ、クライアントサイドではまだ事例が少ないこともあり、手探りの運用にならざるを得ないケースが多いのではないでしょうか?
本トークでは、バーチャルライブ配信アプリ「REALITY」の事例から、指標収集のための実装や、FirebaseやBigQueryなどの外部サービスとの連携など、継続的品質改善のためのiOSアプリのモニタリング手法についてお話しします。
iOSで無線通信 Bluetoothを扱うために存在するCoreBluetoothはiOS 5.0の時代からある歴史のあるものです。
昔触ったことのある人であれば、CoreBluetoothは一部のBluetoothの用途でしか使えない、ごく機能の限られたもの、という印象があるかもしれません。
しかし最近のCoreBluetoothは新規のAPIの追加という形では少ないものの、LE 2M PHY対応やBR/EDR向け対応など、できることは確実に広がっています。
そんなiOSのBluetoothに関して、2022年現在改めてCoreBluetoothではどういったことが実現できるのか、CoreBluetoothについて紹介し、iOSの無線通信の可能性を見出すトークとする予定です。
「REALITY」アプリでは、クライアントとサーバ間のHTTP通信の定義にProtocol Buffersを導入しました。
Protocol BuffersとはGoogleによって開発されたシリアライズフォーマットであり、共通のスキーマからSwiftやKotlin、Goなど各言語向けに必要なコードを自動生成します。
gRPCとセットのイメージのProtocol Buffersですが、バイナリに変換してHTTP通信のbodyに載せることで、プロトコルはHTTP通信のままに、共通のスキーマや、高速、軽量のシリアライゼーションなどProtocol Buffersの恩恵を受ける事が可能です。
このトークでは、Protocol Buffersを使ったHTTP通信の定義に加え、Swiftで独自のprotocのpluginを実装し、クライアントで必要なコードを自動生成する方法を紹介します。
ある日突然「2ヶ月猶予あげるからApp内課金を実装して、App内課金を実装しないと審査通らないよ」と言われた時にあなたならどうしますか?
App内課金(In-App Purchase)はすでに多くのアプリで実装されている機能ですが、課金の形態はアプリによって多種多様で場合によっては調べても自分が提供したい形態にマッチしないような場合もあります。
お上の一声で突如リリースが出来ない危機に陥った時に焦らずに対処できるようにするためにApp内課金を実装する上でのポイントやこれを早く知っておきたかったといったポイントをお話しします。
このトークを聞いて2ヶ月でApp課金をリリースしてみませんか?
量子コンピュータや量子情報、量子暗号といった言葉を聞いたことがある人は多いと思います。これらには量子力学という物理の学問が使われています。
そんな量子力学が作り出す不思議な世界へiOSアプリ開発、Xcodeのシュミレータを用いてご説明します。
物理学の専門性がない方にもご理解いただけるように難しい話はしません。量子力学の面白さ、不思議さを知ってもらうためのトークです。
2014年から趣味で公開し開発を継続しているiOS Webブラウザアプリ開発で溜まった知見を振り返りまとめます。
余裕があればSwiftUIでサンプルアプリを作り公開します。
この辺りの話になると思います。
私たちのチームではAPIの実装とクライアントのAPIインターフェースの実装の差分をできるだけなくし、より円滑に開発を進めるためにOpenAPIを導入しました。
またiOSプロジェクトではCreateAPIというライブラリを使用して、OpenAPIのAPIドキュメントからAPIインターフェースを自動生成しています。
本トークではOpenAPIを実際にiOSプロジェクトに導入するにあたって
などについて実際の業務で得た知見からお話しします。
これからOpenAPIの導入を検討されている開発者のかたの助けになる情報が届けられれば幸いです。
iOSアプリの開発楽しい!アプリ開発したからリリースだ!
・・・その前にちゃんとテストはしましたか?
スピード優先のアジャイル開発はテストを疎かにしていい理由にはなりません。
とはいえ、人力のテストには限界があるので可能な範囲から自動テスト化させていきましょう。
今回はUIテスト技術にフォーカスして、実際に開発中やリリース前にでてきたテストの悩みをどうやって解決したのかをご紹介します。
XCTestとかUIテストとかよくわからん、やりたくない・・・って思っている方、ちゃんとテストコードを書いてリリース前に安心を得ませんか?
多くのプログラミング言語に備わる機能String Interpolationは、一般的には変数をプレースホルダーに展開する機能で、みなさんもよく使用することでしょう。
Swift実装では、開発者に拡張手段が提供されていて、高度で静的な文字列操作を可能にします。
さらにSwuiftUI、とりわけTextの機能が充実したことで、近年では単純なStringとしての表現を超え、活躍の幅は広がっています。
このトークでは、文字列操作としての典型的な使用方法を説明し、SwiftUI.Textを例に、Frameworkと組み合わせた活用方法を紹介します。
String Interpolation活用して、日々のコーディング体験を向上させましょう。
Unity as a Library(UaaL)はUnityをネイティブアプリのライブラリとして利用する技術です。
ネイティブアプリの強みであるOSに準拠したUI/UXを実現できる点、Unityの強みの3Dを簡単に使える仕組みが整っている点を組み合わせることが可能で、複雑な3D表現やリッチなグラフィックを実現したい場合においてUaaLは選択肢に上がるかと思います。
本トークでは、ネイティブ・Unityエンジニア間のコミュニケーション面にも触れつつ、
Unity製のゲームが動作するまでのフロー、ネイティブとUnityとでどのように領域を区切って開発しているかを事例ベースで解説します。
・UaaLの概要
・UaaLの活用とUnityViewの解説
・ネイティブアプリとUnityのメッセージング用のインターフェースの解説
・UaaLの課題や問題点、今後の取り組み
サイレントプッシュ通知を運用するためにはクライアント実装を含め、サーバサイドの実装も必要になります。サーバサイドの実装にも選択肢は一つではありませんがその中でCloud Functionは負荷に対してすスケーリングに悩む必要がなく本来必要な設定や実装の多くの部分をスキップできるのでアプリエンジニアにとって恩恵が大きいです。
このトークではFirebase PubSubメッセージ送信からCloudFunctionが実行されiOSアプリでサイレントプッシュ通知が届くまでの流れに必要な最低限の一通りの実装を実例とともに説明します。
内容構成
- 全体のフロー
- PubSub設定
- Cloud Functionの実装(Typescript)
- iOSクライアントの実装
- 気をつけたい部分
タクシーアプリ「GO」は、2020年9月にリリースしました。
その頃は、iOSチームとして、アプリ開発を行なっており、日々「GO」の新機能を開発する日々でした。
しかしながら、同じ「GO」のプロダクトを開発するメンバーがPdMやデザイナーも含め40人を超えるため、
どうしても意思疎通がうまくいかなかったり、意思決定が遅かったりと、いくつかの問題を抱えていました。
そこで、2021年5月からは、複数のPdMやデザイナーも巻き込んで、大きな改革に取り組みました。
部署自体が異なるため、現場で案件のフローやコンセンサスの取り方など、多くのすり合わせをおこなってきました。
どのような課題感から、何を思い、どのような変革を行なっていったか、是非リーダーやマネージャーを担っているエンジニアの方々だけでなく、これからリーダーやマネージャを目指す方に聞いてもらいたいです。
iOS15からユーザー間でのやりとりのための新しい通知、Communication Notificationが導入されました。
そうです、通知にユーザーのアイコンが出るあの通知です。
UIが変わったり、通知の要約を突破できたりと普通の通知よりも便利なこともある一方、Siriに関する知識が必要になってきます。
しかしSiriに関してはドキュメントも知見も少なく、その割に設定する項目も多く、敷居が高いイメージもあるのではないでしょうか?
そもそもなぜ通知の実装にSiriが出てくるのでしょうか?
このトークではCommunication Notificationの実装方法、Communication Notificationを実装する上でのSiriの知識、及びよくやってしまいがちなCommunication Notificationのアンチパターンなどを紹介していきます。
現在、新規でアプリ開発を考えたとき、Flutterでのアプリ開発は1つの選択肢として浸透しつつあります。
しかしながら、既にSwiftで開発している既存のアプリが大多数で、マルチプラットフォーム開発ができれば、開発コストを下げれると考える一方で、ネイティブとFlutterではレンダリングエンジンが異なるため、なかなか導入に踏み切れないといったところが大きいのではないでしょうか?
今回、既存アプリにFlutterを導入できないか真剣に向き合うことにしました。
少しでも、今後の導入の参考にしていただければと思います。
iOS 14 から、 UICollectionViewCell のカスタマイズ方法に Configuration という種類の API が追加されました。
たとえば、コンテンツや背景の外観に関するデータを設定すると、 View の描画反映を自動で行ってくれます。
これまでは、Header / Body / Footer それぞれの Cell を継承してカスタマイズしてきましたが、 これからは同一のConfiguration それぞれに適用可能な再利用しやすい Composable な API となっています。
本セッションは、Custom の Configuration を用意して、実際に既存の Cell を移行する方法を紹介します。
CompositionalLayout や DiffableDataSources と合わせて活用し、Cell の快適な管理を実現しましょう!
アプリの Apple Pencil 対応を行ったことはありますか?
WWDC 2019 における、PencilKit を利用し、たった3行のコードを実装するだけで Apple Pencil を用いた一連の機能が実現されるデモは印象的でした。
しかし、実際のアプリ開発における独自拡張の中では、様々な困難が待ち受けています。
本セッションでは、PencilKit が可能な拡張・難しい拡張を紹介しつつ、ユースケースに応じてどのような対処が取れるか解説します。たとえば、PencilKit の自由に描けるキャンバス画面と、独自で実装したハイライトマーカーが引ける画面を切り替えて利用できるようにする仕組みなどに触れる予定です。
ドキュメントと実際の動作を比較して得られた知見をもとに PencilKit を実アプリに組み込む Tips を紹介できればと思います。
WWDC2021で発表されたShazamKitは、膨大な音楽カタログをベースに何百万曲の音楽検索を行える音声認識フレームワークです。
音楽に全く詳しくない私(ミスチル好き)ですが音声認識機能には興味があり、
レンタルスペースを予約できる「SpaceMarket」のiOS/Androidアプリへ遊びで勝手に組み込んでみたので
・ShazamKitの機能紹介
・両OSへの導入の仕方
・使い道の検討/実際に作ってみた機能/社員の反応
についてお伝えできればと思っています。