Swiftの新機能、マクロが発表されてからたくさんの方がさまざまな使い方を紹介しています。このLTではAppleが公式に紹介しているものを中心にインターネット上で見つかる様々なマクロを紹介、共有し、Swiftでのマクロの可能性を探ります。
話すこと
話さないこと
Swiftのマクロはまだまだ開発途中であり、今後も機能が拡張されることが期待されます。参加者の皆さんも、自分なりのマクロを開発してみてはいかがでしょうか。
みなさんはアプリでの「マスターデータ」の扱いはどうしていますか?
私たちのアプリでは、駅・市区町村・町域など「合計10万レコード以上」のマスタデータを扱う必要がありました。
また、それらのデータは不定期に更新されるため「データのアップデート」にも対応しなければいけません。
この課題に対して、私たちは「マスターデータを事前投入したRealmファイルをバンドルする」という手法で対応しました!
ということで、このLTでは…
について紹介したいと思います。
※ このLTでは「リモートから取得・更新する方法」に関しては扱いません。
Apple標準フレームワークでお馴染み「MapKit」ですが、
「ただ地図にピンを立てるだけ」ではなく様々な機能がいくつもあることを、みなさん知っていますか?
実はMapKitには毎年新機能が追加され、年々出来ることも増えてきています。
など、このLTでは実際にプロダクトに導入した経験も踏まえ、
MapKitを使い無料で実現できる様々なカスタマイズや機能についてご紹介します!
このトークでは、普段育児に忙しい父親が2歳の娘に向けて開発したレジスターアプリを紹介します。デザインや音声読み上げの工夫を通じて、子供たちが楽しく遊べるアプリを作る方法をご紹介します。具体的には、iOSのHIGを2歳児向けに解釈したシンプルで親しみやすいデザイン、タッチイベントの使い方や誤操作の防止、音声フィードバックの実装、数字や色の認識、その他の試行錯誤と娘の反応フィードバック集の紹介などを行います。最後には、実際に作成したレジスターアプリのデモンストレーションを行います。このトークを通じて、2歳児向けアプリのデザイン原則と音声読み上げの活用方法を学び、親子で楽しめるアプリ開発に役立つ知識を得ることができます。
皆さんは、職場の環境が変わったときや長期の休暇から復帰したときに、慣れない環境に素早くキャッチアップできるように、そしてワークライフバランスを維持するためにやって良かった/やっておけば良かったことはありますか?
私ごとですが、昨年に人生初の転職をし、その3ヶ月後には第一子が生まれて約3ヶ月間の育休を取得しました。つまり、6ヶ月間で2回の職場復帰を経験したことになります。
本トークでは、私が職場復帰を経験した中で、やって良かった/やっておけば良かったと思うことを紹介します。これから皆さんが転職や異動をされたり、長期休暇を取得されたりした際の参考になると嬉しいです。
SwiftはRustから多くのインスピレーションを得ており、特に今後のOwnershipの導入により、その類似性がより感じられるようになっています。
主な共通点として、パターンマッチ、リッチなenum、Option(nal)とResult、async/await構文、trait(protocol)などが挙げられます。(他にもたくさんあります)
また、新たに追加されたマクロ機能や、コンパイラによるスレッドセーフなコードの保証も共通の特徴です。
本発表では、これらの類似点に触れつつ、SwiftエンジニアがRustを、あるいはRustエンジニアがSwiftを書き始めるハードルを下げる新たな視点を提供します!
RxSwiftプロジェクトでも積極的にSwiftUI, Swift Concurrencyを取り入れている機会が増えてきたのではないでしょうか。
またSwiftUIを使用している画面ではSwift Concurrencyを使いたい場面もあるのではないでしょうか。
例えば.refreshable(action:) View Modifierでは、非同期関数を受け取ることができるので、async/await関数を使用したい時があるとおもいます。
このトークでは、既存のRxSwiftベースで書かれているプロジェクトにSwift Concurrencyを取り入れて、SwiftUIで使用する例を紹介します
この発表で、RxSwiftベースで書かれているプロジェクトにもSwift Concurrencyを取り入れてもらう参考になれば、嬉しいです。
WWDC23への現地参加が決まり、喜びとともに英会話への不安が押し寄せます。英会話のレッスンを受けても上手く話せず、結果的に英会話への心理的ハードルが高まってしまいます。まずは話す前に英語に慣れる必要があると感じました。
そこで、チャットや交換日記を通じて、英語のレビューが得られるChatGPT APIを用いたアプリを開発しました。ChatGPTに役割を指示できるため、会話の種類を増やすことが可能です。また、アプリの読み上げ機能を活用することで、リスニングやスピーキングの特訓も可能です。これにより、心理的ハードルを下げ、最終的に現地で少しずつ自分から話すことができました。
本LTでは、アプリの内容やその影響、現地での対話の成果などを紹介します。
iOS16からiPhoneのロック画面をカスタマイズする方法に様々な機能が追加されました。
その中の一つにロック画面ウィジェットがあります。
その名の通りロック画面にウィジェットを置けるのですが、これにより天気やバッテリー残量、カレンダーの予定などの情報をロック画面から素早く確認でき、ウィジェットからアプリを起動することもできるようになりました。
本LTではロック画面ウィジェットについて説明し、既存アプリにロック画面ウィジェットを追加する方法について紹介します。
ロック画面から特定の画面を起動するウィジェットを例に
・実装時に悩んだこと / 落とし穴
・UI / UXで考慮すべきこと
・気づき / 分らなかったこと
・実際に導入する上での障壁
などを交え、サク〜っとお話しします。
iOS15以前では、画面の向きを制御するために shouldAutorotate
を設定したりUIDevice.current.setValue
を使用して強制的に値をセットする方法が取られていました。iOS16では shouldAutorotate
が非推奨になり、
公式から setNeedsUpdateOfSupportedInterfaceOrientations
という新しいメソッドが登場しました。本発表では、以下のような注意すべき点・変更が必要な点を主に解説した上で、このメソッドを使って新しい画面の向き操作について紹介します。
Info.plist
の書き方の違い画像ファイルや多言語対応などのリソース管理を簡潔にするツールとしてR.swiftやSwiftGenを使っているプロジェクトは多いと思います。pixivアプリではR.swiftを使用していましたが、設定の柔軟さやSPM対応からSwiftGenへと移行しました。また、リリース時のリスクや検証のリスク、レビュアーのレビューコストを極力減らすことを目標に、R.swiftとSwiftGenの併用期間を設けながら段階的に移行を行いました。本発表では、分割されたxcassetsファイルの扱いやxibの対応などSwiftGenに移行するにあたって躓いた点、リスクを極力減らすために併用期間を設けて部分的にリリースをした運用方法などを紹介します。
XcodeはiOS開発の標準IDEですが、ことコードの編集においてはテキストオブジェクトやドットリピート等のコード編集に特化した強力な機能を備えたVimを使いたい場面が多々あります。
しかし、アプリの開発ではXcodeが備えるコード補完や定義元ジャンプなどのIDEの機能が必要です。このコード編集の際に便利なIDEの機能はLSPと呼ばれる仕様に沿う事で他のエディタでも使えるようになります。iOS開発に使うSwiftも例外ではなく、SourceKit-LSPと呼ばれるLSPの実装があります。
これらをふまえ、今回の発表ではNeovim(Vim)からSourceKit-LSPを使用して、Swiftを快適に書く方法を紹介したいと思います。LSPの概要を把握しつつVimを使用する事で、両方の良さを享受できるようにしましょう。
WWDC23でApple Vision Proが発表されました。Vision Proでは手の動きや音声でUIを魔法のように操作していました。しかし高精度なカメラやセンサーがなくとも手元のMacと標準フレームワークだけでも同様のことは可能です。
皆さんもご存知の通り、Swiftには画像認識、音声認識などが簡単に行えるフレームワークが充実しています。これらを使いユーザの行動を認識しそれに応じてCGEventを発生させることで「非接触でMacを操作する」といったことが実現できます。
本LTでは以下のようなフレームワークを使いMacを非接触で操作する技術を実際のデモを交えながら紹介します。今日から皆さんのMacも未来に近づくこと間違いなしです。
・Visionフレームワーク
・Speechフレームワーク
・Core Motionフレームワーク
今年新卒のiOSエンジニアとしてキャリアをスタートした私が、BtoCとBtoBtoCのアプリ開発を通じて得た学びと経験を共有します!
インターン時代にはBtoCアプリの開発に携わり、新卒としてはBtoBtoCアプリの開発を担当しています。この両方のアプリ開発において遭遇した課題、そしてそれらから得られた知見を詳しく紹介します。また、開発フローやチームワークの観点からも、BtoCとBtoBtoC開発の違いを説明します。
どちらのアプリ開発が私のキャリアや技術成長にどのように影響を与えたか、具体的な例と共にお話しします。新入社員や現役のエンジニア、またはiOS開発について学びたいと思っている方々に有益な情報を提供できればと考えています!
業務ではGraphQLを採用しデータ取得(クエリー)や更新処理(ミューテーション)を書いています。
GraphQLのネットワーク基盤として、Apollo iOS SDKを採用しており当時v0.53のバージョンを使用していました。
Apollo iOS SDKは、GraphQLを使用するiOSアプリケーションの開発を簡素化し、効率的に行うことができる強力なツールです。
豊富な機能と柔軟性を備えており、GraphQLの採用が増えている現在の開発環境において、重要な役割を果たしています。
v1.0が正式リリースとなり、Swiftコード生成のためのCLIツールの刷新と破壊的変更が加わっておりマイグレーションが必要でした。
このトークでは、いかにしてレガシー版となったApollo iOS SDKを最新版にマイグレーションしたのかと破壊と創造の戦い軌跡を紹介します。
近年では、FlutterやKMMなどのマルチプラットフォームによるモバイルアプリ開発が盛んになってきました。
最近ではComposeMutiplatform for iOSが発表され、マルチプラットフォーム開発の新たな選択肢として話題を集めています。
ComposeMultiplatformとはKotlinとJetpackComposeをベースにした新たなプラットフォームです。
本セクションでは、ComposeMultiplatform for iOSを用いたKotlinによるiOSアプリの開発方法、またみなさんが疑問に思っているであろう、使用可能なネイティブ機能の話やSwiftUIとJetpackComposeの比較などを交えながら、ComposeMultiplatform for iOSの今後の可能性を紹介していきいます。
初めまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、心理学系の大学院に通っていて、大学院では心理学の観点からVRの研究を行っております!!
Apple Vision Proは、Appleが初の空間コンピュータとして販売する発売予定の複合現実ヘッドセット型PCであり、これは2023年のWWDC23で発表され、米国では2024年初旬に購入可能になる予定です。
他のHDMの例としては、Meta QuestやVIVE Proなどが挙げられますが、これらとはいくつかの重要な違いがあります。
特に、操作方法について注目すべきだと考えています。他のHDMはコントローラを用いて操作しますが、Apple Vision Proではコントローラは不要で、アイトラッキングとハンドジェスチャーで操作することができます。
これらの具体的な違いやメリット・デメリットについて詳しく説明します。
初めまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、心理学系の大学院に通っていて、大学院では心理学の観点からVRの研究を行っております!!
Apple Vision Proは、Appleが初の空間コンピュータとして販売する発売予定の複合現実ヘッドセット型PCであり、これは2023年のWWDC23で2023年6月5日に発表され、米国では2024年初旬に購入可能になる予定です。これまでのVR市場では、Meta社のMeta QuestやHTC社のVIVE Proなどがありますが、それらはiPhoneのような普及率は達成していません。理由は、HMDを身につけて日常生活を送ることは少ないからだと私は考えています。しかし、Apple Vision Proの登場により、値段は高いものの、私はこの発表を2007年の初代iPhoneの発売に匹敵する衝撃と捉えています。
私がiOSエンジニアとしてのキャリアをスタートしたのはiOS 6がリリースされた頃でした。当時はAppleの公式ドキュメントの和訳が少なく、必然的に英文を読む機会が増えたことで、少しずつ英語そのものにも興味を持つようなりました。知りたいことが英語で書いてあるので、英語ももっとわかるようになりたいと思ったのです。その後、本格的に学習を始めた2016年の夏から今日まで、iOSアプリ開発を通してどのように英語学習に取り組み、英語力を高めていったのかを、英語の4技能であるリーディング、リスニング、スピーキング、ライティングに分けて振り返ってみたいと思います。
突然ですが、Swift2からSwift3へのメジャーアップデート時の破壊的変更をご存知でしょうか?
私自身はまだiOSエンジニアにもなっていなかったので破壊的変更を経験したわけではないのですが、アップデート対応が非常に大変だったとよく聞きます。
もし、そのようなSwiftの破壊的変更がもう一度来るとすれば…。
本トークでは、Swift6で大きく変更されると予想される内容や、変更内容に対して今からどう備えておくことができるかなどに焦点を当て、解説していきます。
本トークを通じて、Swift6に向けてのロードマップや、具体的なアップデート内容まで、わかりやすく簡単にキャッチアップすることができます。
また、みなさんとSwift6のアップデートについて意見交流ができればと考えております。