「二次元コードがアプリで読み込めません!」
ある日舞い込んだお問い合わせ。
聞いたところ、ある店舗に設置してあるQRコードだけが読み込めないらしい。
他のお店や手元の環境では全く再現しない。
現地に行って試してみると、確かに読み込めない。
気になる点はというと、どうも画面がチカチカしている。
試しに他社の二次元コードリーダーのあるアプリで試してみても、多くのアプリで同様に読み込めない。
これはなんだろう…
上記は実際に運用中のプロダクトで遭遇した、フリッカー現象の事例になります。
このトークでは、FrameRateとフリッカー現象について説明し、二次元コードのスムーズな読み取りのためのFrameRateの設定を提案します。
内容:
iOSの業界をネタにし尽くした、ネタ切れ、というか、もう正直このプロポーザルを書いてる時点でネタがない!打ち切り覚悟のfreddi先生最新作。ファットビューコントローラークリエイター・フレモンによるドタバタコメディ、第3弾です!今からネタ考えるのでもうここに書くこと無いんですよね、さて、今年はどういうネタにしようかな。TwitterでちょっとバズったMVVMタ◯ピーのオマージュを引っ張るのも考えたし、いっそウ◯ニャ路線で行くか、迷うな。あ、そうだ、あの人に聞いてみよう。今年よかったらマンガに登場しませんか?...
???「ええで」
乞うご期待!
Apple Silicon、皆さんはどれくらい使い倒していますか?
現代の令和においても、我々は CPU と非常に近い距離で対話する手段を持っています。それがアセンブリです。
アセンブリは機械語に非常に近い低水準言語であり、CPU アーキテクチャによって記述方法も異なります。Swift などの高水準言語では記述方法が言語のバージョンアップ以外で変わることは少ないため、この特性に疑問を持つ人もいるかもしれません。
本稿では、アセンブリを通じて Apple Silicon を操作する方法を紹介します。初めは仕事に直接活かせないように思えるかもしれませんが、Apple Silicon と近い距離で対話することは意義深いものです。きっと Apple Silicon がさらに魅力的に感じられるでしょう!
私は以下の構成で個人アプリを開発しています。
サードパーティ製のフルスタックフレームワークは使わず、SwiftUIを純粋に使ってきれいなコードになるよう心掛けています。
アーキテクチャはAndroidの公式ドキュメントを参考に設計し、可読性やコードを書くときの迷わなさを高めています。
Viewの分割も読みやすい粒度で適切に行っているつもりです。
ただ自分のコードが本当に読みやすいかは、実際に他の人に読んでもらわないとわかりません。
そこで 個人アプリのREADMEとソースコードをできる限り印刷して公開します 。
持てる限りの知見を共有するので、みなさんはぜひゴリゴリにコードレビューしてマサカリをぶん投げてください。
よりよいコードを作り上げ、一緒に成長しましょう。
iOSアプリ開発でよくあること(俗にいう「あるある」)を4コママンガでめちゃくちゃ面白く表現します。
過去3年間Xcodeがインストールできていないので、今年こそインストールを完了して実際の開発のあるあるが言いたいです。
タクシーアプリ『GO』では、現在大規模な英語への対応作業を進めています。
日々追加される案件開発や差し込みでの対応と並行しながら、既に存在する大量の画面をPdM・デザイナーと適切に連携を取りながら複数言語に対応させていく作業はかなり難易度の高い作業です。
現在タクシーアプリ『GO』では外部文言ツールとGitHub Actionを組み合わせた文言管理を行っていますが、現在の運用に方法を採用するまでには様々な課題が有りました。
そこで本セッションでは、多言語対応に本格着手した際に発生した課題や問題点に対してどのように対応してきたか、及び現在の運用にしてどのような問題が解決されたのかなど、多言語対応にどのように開発チームが対応してきたのかをお話いたします。
SheetやAlertなどのモーダルは、どこのViewやUIViewControllerからでも呼び出して遷移することができますが、それゆえに遷移の実装が無秩序に散らばってしまいがちです。本来のモーダルの構造を考慮せず状態を管理できていない場合、ユーザー操作以外で画面遷移をしなくていけなくなったりすると、確実に動作させることは難しいでしょう。
また、以前のSwiftUIの遷移は不完全なところがあり、UIKitを使う判断をすることも多かったかもしれませんが、最近では改善されてきて遷移を宣言的に管理することも現実的になっています。
モーダルに関わるUIの様々な問題点や最新のAPIの動向を把握し、より最適なモーダル遷移の実装を考えてみましょう。
Swift Packageは、依存配布の最適な手法です。
しかし、Xcodeのパッケージ管理では、キャッシュが揮発しやすく、膨大な依存関係を持つプロジェクトではビルド速度の維持が難しいです。
パッケージの利便性と、速度を両立する手法はないでしょうか
そこで、新しいビルドツールScipio (https://github.com/giginet/Scipio)を使って、パッケージを効率的にキャッシュする手法と、実際に大規模プロジェクトに導入するケーススタディをお伝えします。
このトークでは、以下についてお話しします
SwiftPMの深い部分に触れてみましょう!
今年のWWDC然り、Appleはプライバシー保護に力を入れています。ますます複雑化するiOSのプライバシー事情を皆さんは十分に把握しているでしょうか?プライバシーに関する審査ガイドラインを把握し、リジェクトリスクを取り除けているでしょうか?
このトークでは以下の内容をカバーします。
これからiOSアプリ開発をする人、プライバシー関連の知識に自信がない人にぜひ聞いてほしいです。
※WWDC23の内容については公開情報以上のことは話しません。
iOSエンジニアにとってネットワークは縁遠いものです。
実物や設計を見る機会がなく、教科書を読んでもイメージがつかない方が多いのではないでしょうか。
ちょっと待ってください!実物が目の前にあるじゃありませんか。こんな貴重な機会はありません。
本トークではカンファレンスネットワークを題材にネットワークを学びます。死活監視アプリを作りiOSDC Japanネットワークのふるまいを観察しましょう。
話すこと
対象
WWDC 2019 で発表されたSwiftUIですが、毎年たくさんの機能アップデートがありAPIも合わせてドラスティックに変化しています。
「スタディサプリ 中学講座」では、iOS 14 以降を対象としてフルSwiftUIを目指して開発をしてきました。(現在は iOS 15 以降対象)
SwiftUIが進化していく一方で運用する上では以下のような課題がありました。
このセッションでは「スタディサプリ 中学講座」の運用を通して、進化していくSwiftUIの仕様にどのように対処しているかお話しします。
ここ数年でPayPayはとても大きく成長することができ、現在登録ユーザー数は5,800万人を突破(2023年6月時点)する事ができました。
多くのユーザーがPayPayを利用してくださり、大変ありがたいと感じています。
しかし、私たちは全ての国民がストレスなくPayPayを利用できる環境を提供する責任を感じています。
そこで、毎週リリースしている様々な取り組みを通じて、より使いやすいInfra Appを目指しています。
今回はそんなPayPayの取り込みについてご紹介していきます。
Sansan株式会社では、SansanとEightの2つのモバイルアプリを提供しています。
Sansanは営業DXサービスとして、100万件を超える「企業情報」を提供し、ユーザーの営業活動を加速させています。
モバイルアプリで企業情報を活用してもらうために、SwiftUIを用いたグラフ描画に向き合いました。
また、Eightでは今年4月にCore Bluetoothを活用し、
Eightユーザー間で非接触で名刺交換を行える機能がリリースされました。
これらの機能の紹介とともに、開発を支えた技術について紹介します。
そして、名刺管理のための名刺撮影で活用されているCore MLについても紹介します。
このセッションを通じて、参加者の皆さんに、
Sansan株式会社のモバイルアプリエンジニアが日々向き合っていることをお伝えします。
株式会社GENDAは純粋持株会社でありながらエンジニアが在籍し、グループ企業各社のプロダクト開発を行っています。
私たちモバイルエンジニアの使命はどのプロダクトにおいてもスピーディかつ堅牢で高品質なアプリ開発を行うことです。
しかしながらプロダクトによって使用する技術、歴史、文化、成長フェーズなどが異なる中でこれを実現することは容易ではありません。
本セッションでは、グループ企業を横断した少人数で効率的な開発を実現するために、弊社モバイルエンジニアのこれまでの取り組みとその成果をご紹介します。
「外部のECサイトをアプリに組み込んで、会員情報・認証情報をアプリと同期させたい」
上記は「STORES ブランドアプリ」で実際に行ったEC連携の事例ですが、WebViewとネイティブ間のデータ連携は珍しくない要件だと思います。
このような場合、WebView内の特定アクションや遷移をネイティブ側でフックする必要があります。
登録・ログイン・SNS連携などの挙動ごとのハンドリングに加え、バックエンドとの連携も重なると、とても複雑な状態管理が求められます。
このトークでは、WebView-ネイティブ間連携を必要とする多くのアプリの複雑な状態管理の荒波を、ステートマシンという羅針盤を駆使することで乗り越える指針を示します。
内容:
今年2023年でついに10周年を迎えるwatchOS。そんな年に私は個人開発でカウンターアプリWristCounterをリリースしました。その経験を元に、watchOS開発の最新事情とハマりどころについて話します。
iOS15で登場したSharePlayについては iOSDC Japan 2021でも紹介しました。
そして先日のWWDC23で念願のApple Vision Pro/visionOSが発表され、SharePlayの一連の仕様はこのためだったのか!と全てが繋がりました。
このトークセッションではSharePlayを未知のかたでもわかるようSharePlayの歴史を振り返り、SharePlayについて簡単に復習した後、後半のメインディッシュはApple Vision ProでSharePlayはこう使われる/使える!という部分にフォーカスし、SharePlayについて堪能する20分をお届けします。
プロプライエタリサードパーティSDKの挙動をカスタムしたい!でもそのためのインターフェースがない!しかし変更したい!
フィーチャーリクエストを送るが返信は返ってこない、しかし変更したい!
そんなあなたが手を出すであろうMethod Swizzlingについて
このトークでは基本から調査方法、高難度となるSwiftや最近のObjective-C機能についてお話します。
iOS 14 からUICollectionViewのセルのカスタマイズ方法にConfigurationというAPIが追加されました。
これまでカスタムセルはサブクラスを作成して実装していました。Configurationにより、セルレイアウトと外観を分離し再利用しやすいComposableなAPIの管理ができます。
また縦方向のリスト形式の例では削除や並び替えといった機能と滑らかな表示体験が提供でき、安全にOSの機能を考慮した複雑なカスタムセルが実装できます。
本セッションでは日本経済新聞社の紙面ビューアーアプリで実際に導入したUIKitベースのカスタム例を紹介します。
UIKitベースのパターンは実装例が比較的少ない一方、依然として重要な選択肢です。SwiftUIベースでは困難な制約やリスト表示のパフォーマンス観点などを踏まえ、仕組みからUIKitとSwiftUIの理解を深めます。
iOS は一見、テキスト入力や表示のような基本的実装はとても簡単に思えますが、実際には一度はその動作に頭を悩ましたことがあるでしょう。
iOSDC 2020 では「iOS のキーボードと文字入力のすべて」と題してこれらの問題について詳細に検討しました。
そして、この3年間で iOS は大きく変化し、SwiftUI が広く使われるようになり、全く新しいAPI、TextKit 2 が登場しました。
TextKit 2 は大きく変化しおり、互換性に関して注意すべき点が多くあります。
このセッションでは、過去の事例と比較して、多くのユーザが使う iOS アプリにおけるリッチテキストの実装などを踏まえて、
キーボードの挙動や SwiftUI、そして TextKit 2 によって変わったテキスト処理について実装例を用いて検討していきます。
対象とする方: iOS アプリ開発の経験がある中・上級者