WWDC23への現地参加が決まり、喜びとともに英会話への不安が押し寄せます。英会話のレッスンを受けても上手く話せず、結果的に英会話への心理的ハードルが高まってしまいます。まずは話す前に英語に慣れる必要があると感じました。
そこで、チャットや交換日記を通じて、英語のレビューが得られるChatGPT APIを用いたアプリを開発しました。ChatGPTに役割を指示できるため、会話の種類を増やすことが可能です。また、アプリの読み上げ機能を活用することで、リスニングやスピーキングの特訓も可能です。これにより、心理的ハードルを下げ、最終的に現地で少しずつ自分から話すことができました。
本LTでは、アプリの内容やその影響、現地での対話の成果などを紹介します。
iOS16からiPhoneのロック画面をカスタマイズする方法に様々な機能が追加されました。
その中の一つにロック画面ウィジェットがあります。
その名の通りロック画面にウィジェットを置けるのですが、これにより天気やバッテリー残量、カレンダーの予定などの情報をロック画面から素早く確認でき、ウィジェットからアプリを起動することもできるようになりました。
本LTではロック画面ウィジェットについて説明し、既存アプリにロック画面ウィジェットを追加する方法について紹介します。
ロック画面から特定の画面を起動するウィジェットを例に
・実装時に悩んだこと / 落とし穴
・UI / UXで考慮すべきこと
・気づき / 分らなかったこと
・実際に導入する上での障壁
などを交え、サク〜っとお話しします。
画像ファイルや多言語対応などのリソース管理を簡潔にするツールとして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を使用する事で、両方の良さを享受できるようにしましょう。
今年新卒の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のアップデートについて意見交流ができればと考えております。
Swift 5.1からsome、Swift 5.6からanyという新しいキーワードが加わりました!
anyキーワードはSwift 6.0から明示的に付与しなければコンパイルエラーになります。 対応に迫られた時、よくもわからずanyをつけていくという状態では心許ないですよね、、、
本トークで、2つの切り口からsomeとanyの理解を深めていきましょう
汎用的なコード実装がより簡単に!
ジェネリクスは汎用的なAPIを作成する上で強力ですが、慣れていないと実装しづらいところがあります。それをsomeキーワードで実装した場合にどうなるか、実際のコードで比較しながら把握してみましょう
プロトコルの役割を明確に!
Swiftのプロトコルは型を抽象的にする役割と、制約を設ける役割の両方があります
それぞれの役割に応じてanyとsomeを使い分け、それによって得られるメリットをお伝えします
みなさん、DI(Dependency Injection, 依存性注入) をどのように行っていますか?
急速に変化していくiOSアプリ開発において、様々なDI手法が乱立しており、 "どのようなDI手法を選択するかベストなのか" と違和感を感じることがあるのではないでしょうか?
本LTでは、 私が現段階でDIのベストプラクティスだと考えている swift-dependencies を用いた DIからテストまで "具体例をもとに" 紹介し、DI手法の選択肢拡大に貢献したいと考えています。
swift-dependencies は TCAから派生して生まれたDIライブラリで、とても簡単に依存を登録し、柔軟な依存注入が可能です。
そのため、新規/既存のプロジェクトに対して導入が容易に行えます。
DI手法について再検討したい方 や TCAを用いた開発を考えている方 の支えになれば幸いです!
昨年公開されたSwift 5.7から、ついにprotocolにジェネリクスを使えるようになりました。
これにより、型消去のようなテクニックを用いることなく、associatedtypeを持つprotocolをより便利に・簡単に扱うことができます。
今回はこの新機能の活用方法を、実際にアプリをリアーキテクチャした実例とともにご紹介します。
iOSアプリ、Swift化してますか?ではCI/CDや業務効率化は?これらはfastlaneやGoogle Apps Scriptを使っており、iOSエンジニアには馴染みが薄いRubyやJavaScriptを使うことが多いでしょう。
「それ、Swiftで実装しませんか?」
メリットの一つはSwiftで読み書きできることです。アプリと同じ言語ならば、慣れない言語を使う頭の切り替えは不要で実装も捗ります。またWWDC22でも登場したVaporを使いより幅広い機能を実現することもできます。
本トークではヤプリで行っている業務効率化、Swift化の過程や既存ツールとの共存、Swift化のメリットを下記の実例と共にお伝えします。
①アプリ審査ステータス取得:Vaporを使い、GASでは難しい機能を実現
②リリース自動化:Swiftで実装しfastlaneから呼ぶことで、既存ツールとの共存を実現
最近、アクセシビリティという言葉をよく聞くようになりましたが、実際に導入、考慮をしているアプリはまだまだ少ない現状です。
身近なもので言うと、文字サイズの対応もアクセシビリティの一つです。
※この概要でのアクセシビリティとは、「身体の状態や能力の違いによらず様々な利用者がアプリやサービスを円滑に利用できること」と定義します。
アクセシビリティを考慮することによるメリットは多くあります。 (例) 利用できる人が増える...
今回のトークで話す内容
このトークの後には、明日から導入できるような話をしますので、アクセシビリティ考慮をしたいと思っている方の力になれたらなと思います!
FlutterエンジニアをやっていてSwiftにも挑戦してみたい! iOSエンジニアをやっていてFlutterに挑戦してみたい!ってことありませんか?
今回の登壇で話す内容
今回の登壇は、現役大学生が長期インターンなどの実際の現場で経験した話に基づいてお話しさせていただきます。
FlutterからiOSエンジニア、iOSからFlutterエンジニアに移行する際に、不安や障壁の解消をしたいと思います!!
Flutterを使っていて、UIの構築する際に、SwiftUIぽい書き方をしたいと思いませんか?
最近の海外でFlutterをSwiftUIぽい書き方をするのが流行っています。その導入方法からメリット・デメリットを解説していきたいと思います。
今回はSwiftUI経験者、FlutterでSwiftUIぽい書き方を導入してみたい人向けの内容です。
FlutterでSwiftUIぽい書き方をするメリット
このトークがSwiftUIの障壁、Flutterの障壁をなくすことができたら幸いです。
私たちのチームではSwift Concurrency対応やSwiftUIの導入に向けてFluxベースのアーキテクチャを脱却し、全面的なリアーキテクチャを進めています。
そんなチームである日突然リアーキ担当に任命された新卒2年目の私。
Swift Concurrencyヨクワカラナイ、大規模なプロジェクト初めての若手エンジニアがどのようにしてプロジェクトを推進したのか、その挑戦を5分で紹介します。
本トークでは若手がリーダーシップをとって大きなプロジェクトを推進する際の視点から、以下の内容に焦点を当ててお話しします。
アーキテクチャを使ってアプリを作る経験やテストを書いた経験がなく、どこか負い目を感じていました。
そんな僕がThe Composable Architecture(TCA)と出会い、学び、業務のアプリに導入したことで見える世界が変わりました。
TCA導入のビフォーアフターでどうコードの可読性が上がったか、どう迷いなくテストが書けるようになったかの感動をお伝えします。
界隈ではすでに多くの方々がTCAの良さを発信されていますが、ぜひ僕のようにアーキテクチャやテストについて何をどうやったらいいのかわからない方々に向けてお話ししたい内容です。
きっとあなたもTCAを触ってみたくなるはず!