アプリの Apple Pencil 対応を行ったことはありますか?
WWDC 2019 における、PencilKit を利用し、たった3行のコードを実装するだけで Apple Pencil を用いた一連の機能が実現されるデモは印象的でした。
しかし、実際のアプリ開発における独自拡張の中では、様々な困難が待ち受けています。
本セッションでは、PencilKit が可能な拡張・難しい拡張を紹介しつつ、ユースケースに応じてどのような対処が取れるか解説します。たとえば、PencilKit の自由に描けるキャンバス画面と、独自で実装したハイライトマーカーが引ける画面を切り替えて利用できるようにする仕組みなどに触れる予定です。
ドキュメントと実際の動作を比較して得られた知見をもとに PencilKit を実アプリに組み込む Tips を紹介できればと思います。
本トークでは、iOS・Android両OSで展開しているアプリ向けに、KMMを用いたテキストリリース共通化を提案します
まずはじめに、長年運用しているアプリだからこその課題を交えながらモチベーションについてご説明します。その後、比較検討した手法と想定している移行手順についてご説明します。そして最後に、+aの要素や今後の展望についてご説明します。
課題の抜粋
+aの例
を予定しております。
フチ文字とは、文字の輪郭を線で縁取る文字装飾の手法です。
新聞の見出し、スーパーのチラシ、そして動画のテロップなどでよく用いられています。
みなさんも一度は目にしたことがあるかと思います。
そんなフチ文字、さらにグラフィックソフトで作成したようなフチ文字をアプリ内で使いたい。
そうデザイナーから相談されたとき、どんな方法が思いつきますか。
AttributedStringを用いて文字の輪郭に線をつければ解決、そう思いませんか。
しかし、それでは美しくない!
本LTでは、SwiftUIで美しいフチ文字を模索した内容を事例を交えながらお話します。
以下の内容を予定しています。
・フチ文字とはなにか
・SwiftUIを用いたフチ文字の実現方法
フチ文字とは、文字の輪郭を線で縁取る文字装飾の手法です。
新聞の見出し、スーパーのチラシ、そして動画のテロップなどでよく用いられています。
みなさんも一度は目にしたことがあるかと思います。
そんなフチ文字、さらにグラフィックソフトで作成したようなフチ文字をアプリ内で使いたい。
そうデザイナーから相談されたとき、どんな方法が思いつきますか。
AttributedStringを用いて文字の輪郭に線をつければ解決、そう思いませんか。
しかし、この方法にはある問題があり…。
本トークでは、私が試行錯誤しながら、より質が高く美しいフチ文字を模索した内容を事例を交えながらお話します。
以下の内容を予定しています。
・フチ文字とはなにか
・発表者の思う美しいフチ文字、美しくないフチ文字の定義
・UIKitを用いたフチ文字の実現方法
・SwiftUIを用いたフチ文字の実現方法
みなさん、自信を持ってユーザーに喜んでもらえそうな機能をリリースしてもなかなかダウンロード数が増えない、新機能をもっと訴求して以前のユーザーに戻ってもらいたい...なんて悩みはありませんか?
昨年、App Storeの新機能として「App内イベント」「プロダクトページのカスタマイズ」「プロダクトページのA/Bテスト」がリリースされました。これらの機能を活用することで自分のアプリをさらにアピールすることができます。
このLTでは実際に各機能を使ってみてどんな効果があったかをお話ししたいと思います。
このLTを聴いて素敵なプロダクトページを作りましょう!
iOSエンジニアだった私がひょんなことからプロダクトマネージャー(PdM)に転生してから4年がたちました。
花形と言われるPdMですが、エンジニア出身のPdMは実際どの様なポジションなのでしょうか?
PdMになった経緯、どういう人が向いているのか、何を勉強すればいいのか、身につくスキル、業務内容やエンジニアと比べてぶっちゃけ待遇はどうなのかなどについてお話します。
WWDC21 が開催されていた昨年の6月、AVKit に追加されたひとつの機能に社内がざわつきました。
PiP(ピクチャ・イン・ピクチャ)の機能を応用して、Android の画面オーバーレイのようにアプリ外に自由なコンテンツを描画できる期待感を経験のあるエンジニアは感じていましたが、既存のアプリに機能を組み込むまでには R&D 的な開発やパフォーマンスとの戦いがありました。
このトークでは、ゲーム配信アプリミラティブに実装され多くのユーザーに利用されている、視聴者からのコメントや各種配信情報をアプリ外で表示する「配信コメントバー」機能の開発の裏側と技術の詳細についてご紹介します。
・「配信コメントバー」機能の概要
・実装の解説
・R&D 開発とパフォーマンスの解決
・PiP と AVAudioSession との関係
・PiP のカスタマイズ性
Swift ConcurrencyはWWDC2021で発表されてSwift5.5で追加された新しい技術であり、まだ名前しか聞いたことないよという人もいるかもしれません。Swift Concurrencyは非同期処理や並列処理をシンプルに書くことができる機能です。
本トークではではSwift Concurrencyとは一体何か、どんな利点があるかをSwiftUIを使った実装例を通して紹介します。
この話を聞くと、もうクロージャを使った非同期処理なんて書きたくない!って思えるかも笑
株式会社ゆめみでは新卒iOSエンジニア向けに研修課題をGitHubで公開しています。
弊社の新卒課題は一見すると簡単ですぐに終わってしまうように見えますが、ところどころにハマりやすい罠があります。
・ライフサイクル
・Delegate
・コールバック
・スレッドブロック
・テスト
などなど、ハマりやすい要素がたくさんあります。
ゆめみの新卒として研修を経験した私だからこそ感じた初学者がハマりやすい罠をご紹介します。
本LTを聞いてくださる方の中には学生や社会人が入り混ざっているのではないでしょうか?
特に学生の方!こんな悩みを持ったことはないですか?
・ 学生と社会人ってどう違うんだ?
・エンジニアになったら、どんなことを求められるの?
新卒エンジニアとして数ヶ月会社の中で働いてみて感じた、学生エンジニアと社会人エンジニアの違いについてご紹介します。
これから就活する人や既に就活が終わった人も、本LTを聞いて残りの学生生活で費やすことができるプロダクト開発に役立ていただければ幸いです。
Swift ConcurrencyはWWDC2021で発表されてSwift5.5で追加された新しい技術であり、まだ名前しか聞いたことないよという人もいるかもしれません。Swift Concurrencyは非同期処理や並列処理をシンプルに書くことができる機能です。
本LTではSwift Concurrencyとは一体何か、どんな利点があるか紹介します。この話を聞くと、もうクロージャを使った非同期処理なんて書きたくない!って思えるかも笑
UIデザインツールというとFigmaとSketch二択になってきましたが、アイコンデザインなどビジュアルデザインに近い部分を除いたら、意外とSwiftUIでデザインできちゃいます。SwiftUIだと静的デザインをそのまま実装に組み込めるメリットがあり、開発効率向上にもつながります。
本トークでは、Figmaと比較してSwiftUIがどれぐらい便利かつ直感にレイアウト組めるかをご紹介します。
SwiftUIでデザインしてみませんか?
デザインをいただいて、実装しようとすると以下のように戸惑うことはありませんか。
デザインツールの機能不足により妥協したデザイン表現になり、直接デザイナさんにどういうデザインにしたいかを聞いて実装する場合もあると思います。しかし、デザインツールの進化により表現できるデザインが年々増えてきており、困るケースも少なくなってきました。
本トークでは、FigmaにおいてiOSエンジニア目線で、表現できるケースと表現できないケースをご紹介します。
さまざまな場面でローディングインジケータなどを使い、ユーザを待たせていると思います。
しかし、それが果たして必須な要件かというとそうではなく、実装時のコストの兼ね合いで妥協している場合が多いと思います。
本トークでは、ユーザを待たせずに済むよりよい手法とそれを実現する実装方法の具体例をご紹介します。
さまざまな場面でローディングインジケータなどを使い、ユーザを待たせていると思います。
しかし、それが果たして必須な要件かというとそうではなく、実装時のコストの兼ね合いで妥協している場合が多いと思います。
本トークでは、ユーザを待たせずに済むよりよい手法をご紹介します。
売上を最大化させるためのレジの台数といった合理的な意思決定の方法を考える学問である「オペレーションズ・リサーチ」において、数式で求めた結果が合っているのかを確かめるのは難しいものです。しかし、SceneKitで現実世界を再現することで結果の”検証”を行うことができます。SceneKitによる新しい数学の学習方法を複数の具体例とともに紹介します。
ある日、あなたはプロダクトマネージャーから「API から統計情報を提供するから、アプリでグラフを描いてくれない?」と言われたら、どうしますか?
新規アプリであれば、 WWDC 2022 で紹介される Swift Charts を Swift UI を用いて、実装すれば、 Apple から提供されるフレームワークですし、サポートされているすべての OS で適切に描画できそうです。でも、 Swift UI を導入できていない既存アプリだったら、どうしますか?
本トークでは WWDC 2022 で紹介される Swift Charts でグラフを描いた場合と Swift Charts が無かった場合のベストプラクティスを探求し、比較をします。
※ Swift Charts が開発者に提供されなかった場合は WWDC 2022 での発表内容を元に比較を行います。
紙とペンだけが数学の道具ではありません。SceneKitで現実世界を再現して求めた答えを検証してみませんか?SceneKitによる数学の学習方法を具体例とともに紹介します。
アプリの効果測定にはインプレッションの集計は有効な手段の一つです。しかし、より正確な測定結果を得るために単純に「1ptでも表示したらインプレッション発生」という訳でもなく、ユーザーに視認されることが可能と言えるインプレッションといった厳密な視認可能インプレッションの定義が必要かもしれません。
本トークではZOZOTOWNのホーム画面で対応できた独自の視認可能インプレッションの話を紹介します。
「面積のx%以上がy秒間表示し続けるとインプレッションの成立とする」、「インプレッション再記録の条件は◯にする」などインプレッションの設計から、CompositionalLayoutで対応されたホーム画面でそれを実現した際の裏話を大公開します!
・視認可能インプレッションの設計
・CompositionalLayoutでのreusableViewとcellの面積計算の問題
・パフォーマンス面の考慮
プロジェクトに新メンバーがjoinする際、初めに立ち塞がる壁が開発環境構築です。
また、いざ環境が出来上がったとしてもその後開発ツール(CocoaPods、SwiftLint、etc...)がアップデートされていることに気づかないとバージョン差異に起因する事故(おま環、コンフリクト、etc...)も起こりがちです。
そこで、自分の関与しているプロジェクトではgit-hooksによる開発環境の自動更新を実施しています。
本LTでは、意外と忘れられがちなgit-hooksとiOS開発における活用方法について紹介します。
サステナブルな開発環境、欲しくないですか?