ルーキーズLT(5分)

海外未経験者が個人開発アプリによって2ヶ月間で英会話の不安を解消させる

WWDC23への現地参加が決まり、喜びとともに英会話への不安が押し寄せます。英会話のレッスンを受けても上手く話せず、結果的に英会話への心理的ハードルが高まってしまいます。まずは話す前に英語に慣れる必要があると感じました。

そこで、チャットや交換日記を通じて、英語のレビューが得られるChatGPT APIを用いたアプリを開発しました。ChatGPTに役割を指示できるため、会話の種類を増やすことが可能です。また、アプリの読み上げ機能を活用することで、リスニングやスピーキングの特訓も可能です。これにより、心理的ハードルを下げ、最終的に現地で少しずつ自分から話すことができました。

本LTでは、アプリの内容やその影響、現地での対話の成果などを紹介します。

  • ChatGPT APIを活用した英会話特訓アプリの紹介
  • 現地での対話の内容
  • 心理的ハードルの変化(Before & After)
2
ルーキーズLT(5分)

ロック画面ウィジェットから特定の機能を起動してみよう

shkrd_ Shuhei Kuroda

iOS16からiPhoneのロック画面をカスタマイズする方法に様々な機能が追加されました。
その中の一つにロック画面ウィジェットがあります。
その名の通りロック画面にウィジェットを置けるのですが、これにより天気やバッテリー残量、カレンダーの予定などの情報をロック画面から素早く確認でき、ウィジェットからアプリを起動することもできるようになりました。

本LTではロック画面ウィジェットについて説明し、既存アプリにロック画面ウィジェットを追加する方法について紹介します。
ロック画面から特定の画面を起動するウィジェットを例に
・実装時に悩んだこと / 落とし穴
・UI / UXで考慮すべきこと
・気づき / 分らなかったこと
・実際に導入する上での障壁
などを交え、サク〜っとお話しします。

2
ルーキーズLT(5分)

R.swiftから併用期間を経てSwiftGenへ…

ras0q Ras

画像ファイルや多言語対応などのリソース管理を簡潔にするツールとしてR.swiftやSwiftGenを使っているプロジェクトは多いと思います。pixivアプリではR.swiftを使用していましたが、設定の柔軟さやSPM対応からSwiftGenへと移行しました。また、リリース時のリスクや検証のリスク、レビュアーのレビューコストを極力減らすことを目標に、R.swiftとSwiftGenの併用期間を設けながら段階的に移行を行いました。本発表では、分割されたxcassetsファイルの扱いやxibの対応などSwiftGenに移行するにあたって躓いた点、リスクを極力減らすために併用期間を設けて部分的にリリースをした運用方法などを紹介します。

ルーキーズLT(5分)

NeovimからSwiftのLSPを使用しよう

nonbiri_program かめちゃ

XcodeはiOS開発の標準IDEですが、ことコードの編集においてはテキストオブジェクトやドットリピート等のコード編集に特化した強力な機能を備えたVimを使いたい場面が多々あります。

しかし、アプリの開発ではXcodeが備えるコード補完や定義元ジャンプなどのIDEの機能が必要です。このコード編集の際に便利なIDEの機能はLSPと呼ばれる仕様に沿う事で他のエディタでも使えるようになります。iOS開発に使うSwiftも例外ではなく、SourceKit-LSPと呼ばれるLSPの実装があります。

これらをふまえ、今回の発表ではNeovim(Vim)からSourceKit-LSPを使用して、Swiftを快適に書く方法を紹介したいと思います。LSPの概要を把握しつつVimを使用する事で、両方の良さを享受できるようにしましょう。

1
ルーキーズLT(5分)

新卒iOSエンジニアから見たアプリ開発: BtoCとBtoBtoCの違いと学び

jus

今年新卒のiOSエンジニアとしてキャリアをスタートした私が、BtoCとBtoBtoCのアプリ開発を通じて得た学びと経験を共有します!

インターン時代にはBtoCアプリの開発に携わり、新卒としてはBtoBtoCアプリの開発を担当しています。この両方のアプリ開発において遭遇した課題、そしてそれらから得られた知見を詳しく紹介します。また、開発フローやチームワークの観点からも、BtoCとBtoBtoC開発の違いを説明します。

どちらのアプリ開発が私のキャリアや技術成長にどのように影響を与えたか、具体的な例と共にお話しします。新入社員や現役のエンジニア、またはiOS開発について学びたいと思っている方々に有益な情報を提供できればと考えています!

ルーキーズLT(5分)

Apollo iOS SDK を v0.53 から v1.2 までマイグレートした破壊と創造の戦い軌跡を紹介します

kazutoshibaba うまとし

業務ではGraphQLを採用しデータ取得(クエリー)や更新処理(ミューテーション)を書いています。

GraphQLのネットワーク基盤として、Apollo iOS SDKを採用しており当時v0.53のバージョンを使用していました。
Apollo iOS SDKは、GraphQLを使用するiOSアプリケーションの開発を簡素化し、効率的に行うことができる強力なツールです。
豊富な機能と柔軟性を備えており、GraphQLの採用が増えている現在の開発環境において、重要な役割を果たしています。

v1.0が正式リリースとなり、Swiftコード生成のためのCLIツールの刷新と破壊的変更が加わっておりマイグレーションが必要でした。

このトークでは、いかにしてレガシー版となったApollo iOS SDKを最新版にマイグレーションしたのかと破壊と創造の戦い軌跡を紹介します。

4
ルーキーズLT(5分)

ComposeMultiplatformでアプリ開発をやってみた

hiroaki_iOS ひろあき

近年では、FlutterやKMMなどのマルチプラットフォームによるモバイルアプリ開発が盛んになってきました。
最近ではComposeMutiplatform for iOSが発表され、マルチプラットフォーム開発の新たな選択肢として話題を集めています。
ComposeMultiplatformとはKotlinとJetpackComposeをベースにした新たなプラットフォームです。
本セクションでは、ComposeMultiplatform for iOSを用いたKotlinによるiOSアプリの開発方法、またみなさんが疑問に思っているであろう、使用可能なネイティブ機能の話やSwiftUIとJetpackComposeの比較などを交えながら、ComposeMultiplatform for iOSの今後の可能性を紹介していきいます。

4
ルーキーズLT(5分)

Apple Vision Proと他のHDMの違いについて

isekiryu いせりゅー

初めまして!
株式会社ゆめみの2023年卒のFlutterエンジニアで、心理学系の大学院に通っていて、大学院では心理学の観点からVRの研究を行っております!!
Apple Vision Proは、Appleが初の空間コンピュータとして販売する発売予定の複合現実ヘッドセット型PCであり、これは2023年のWWDC23で発表され、米国では2024年初旬に購入可能になる予定です。
他のHDMの例としては、Meta QuestやVIVE Proなどが挙げられますが、これらとはいくつかの重要な違いがあります。
特に、操作方法について注目すべきだと考えています。他のHDMはコントローラを用いて操作しますが、Apple Vision Proではコントローラは不要で、アイトラッキングとハンドジェスチャーで操作することができます。
これらの具体的な違いやメリット・デメリットについて詳しく説明します。

2
ルーキーズLT(5分)

心理学系の大学院生の視点からみたApple Vision Proが及ぼすVR界隈の未来

isekiryu いせりゅー

初めまして!
株式会社ゆめみの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の発売に匹敵する衝撃と捉えています。

3
ルーキーズLT(5分)

私の英語学習法とその結果~iOSエンジニアの場合~

私がiOSエンジニアとしてのキャリアをスタートしたのはiOS 6がリリースされた頃でした。当時はAppleの公式ドキュメントの和訳が少なく、必然的に英文を読む機会が増えたことで、少しずつ英語そのものにも興味を持つようなりました。知りたいことが英語で書いてあるので、英語ももっとわかるようになりたいと思ったのです。その後、本格的に学習を始めた2016年の夏から今日まで、iOSアプリ開発を通してどのように英語学習に取り組み、英語力を高めていったのかを、英語の4技能であるリーディング、リスニング、スピーキング、ライティングに分けて振り返ってみたいと思います。

1
ルーキーズLT(5分)

プチ考察!Swift6の破壊的変更に備える

cychow_app Shirakazu Eiji

突然ですが、Swift2からSwift3へのメジャーアップデート時の破壊的変更をご存知でしょうか?
私自身はまだiOSエンジニアにもなっていなかったので破壊的変更を経験したわけではないのですが、アップデート対応が非常に大変だったとよく聞きます。

もし、そのようなSwiftの破壊的変更がもう一度来るとすれば…。

本トークでは、Swift6で大きく変更されると予想される内容や、変更内容に対して今からどう備えておくことができるかなどに焦点を当て、解説していきます。
本トークを通じて、Swift6に向けてのロードマップや、具体的なアップデート内容まで、わかりやすく簡単にキャッチアップすることができます。
また、みなさんとSwift6のアップデートについて意見交流ができればと考えております。

4
ルーキーズLT(5分)

ここで押さえる!someとany

Nao_RandD Nao-RandD

Swift 5.1からsome、Swift 5.6からanyという新しいキーワードが加わりました!
anyキーワードはSwift 6.0から明示的に付与しなければコンパイルエラーになります。 対応に迫られた時、よくもわからずanyをつけていくという状態では心許ないですよね、、、

本トークで、2つの切り口からsomeとanyの理解を深めていきましょう

  1. 汎用的なコード実装がより簡単に!
    ジェネリクスは汎用的なAPIを作成する上で強力ですが、慣れていないと実装しづらいところがあります。それをsomeキーワードで実装した場合にどうなるか、実際のコードで比較しながら把握してみましょう

  2. プロトコルの役割を明確に!
    Swiftのプロトコルは型を抽象的にする役割と、制約を設ける役割の両方があります
    それぞれの役割に応じてanyとsomeを使い分け、それによって得られるメリットをお伝えします

1
ルーキーズLT(5分)

swift-dependencies で「DIやテスト」がどう変わるか具体例で学ぶ

ios_hamada dahama

みなさん、DI(Dependency Injection, 依存性注入) をどのように行っていますか?

急速に変化していくiOSアプリ開発において、様々なDI手法が乱立しており、 "どのようなDI手法を選択するかベストなのか" と違和感を感じることがあるのではないでしょうか?

本LTでは、 私が現段階でDIのベストプラクティスだと考えている swift-dependencies を用いた DIからテストまで "具体例をもとに" 紹介し、DI手法の選択肢拡大に貢献したいと考えています。

swift-dependencies は TCAから派生して生まれたDIライブラリで、とても簡単に依存を登録し、柔軟な依存注入が可能です。
そのため、新規/既存のプロジェクトに対して導入が容易に行えます。
DI手法について再検討したい方 や TCAを用いた開発を考えている方 の支えになれば幸いです!

12
ルーキーズLT(5分)

ジェネリックなprotocolを活用してアプリをリアーキテクチャする

shumpei_nagata Shumpei Nagata

昨年公開されたSwift 5.7から、ついにprotocolにジェネリクスを使えるようになりました。
これにより、型消去のようなテクニックを用いることなく、associatedtypeを持つprotocolをより便利に・簡単に扱うことができます。
今回はこの新機能の活用方法を、実際にアプリをリアーキテクチャした実例とともにご紹介します。

1
ルーキーズLT(5分)

iOSアプリだけじゃない!CI/CDや業務効率化でもSwift化を進めたい!@ヤプリ

kamimi_01 kamimi / かみみ

iOSアプリ、Swift化してますか?ではCI/CDや業務効率化は?これらはfastlaneやGoogle Apps Scriptを使っており、iOSエンジニアには馴染みが薄いRubyやJavaScriptを使うことが多いでしょう。

「それ、Swiftで実装しませんか?」

メリットの一つはSwiftで読み書きできることです。アプリと同じ言語ならば、慣れない言語を使う頭の切り替えは不要で実装も捗ります。またWWDC22でも登場したVaporを使いより幅広い機能を実現することもできます。

本トークではヤプリで行っている業務効率化、Swift化の過程や既存ツールとの共存、Swift化のメリットを下記の実例と共にお伝えします。
①アプリ審査ステータス取得:Vaporを使い、GASでは難しい機能を実現
②リリース自動化:Swiftで実装しfastlaneから呼ぶことで、既存ツールとの共存を実現

7
ルーキーズLT(5分)

iOSアプリの視点からアクセシビリティを理解する

naruogram naruogram

最近、アクセシビリティという言葉をよく聞くようになりましたが、実際に導入、考慮をしているアプリはまだまだ少ない現状です。
身近なもので言うと、文字サイズの対応もアクセシビリティの一つです。
※この概要でのアクセシビリティとは、「身体の状態や能力の違いによらず様々な利用者がアプリやサービスを円滑に利用できること」と定義します。

アクセシビリティを考慮することによるメリットは多くあります。 (例) 利用できる人が増える...

今回のトークで話す内容

  • iOSアプリでアクセシビリティ対応の導入
  • iOSアプリでアクセシビリティ対応をする際に気をつける点
  • iOSアプリでアクセシビリティに対応できているかをチェックする方法

このトークの後には、明日から導入できるような話をしますので、アクセシビリティ考慮をしたいと思っている方の力になれたらなと思います!

3
ルーキーズLT(5分)

FlutterエンジニアからiOSエンジニアになった話

naruogram naruogram

FlutterエンジニアをやっていてSwiftにも挑戦してみたい! iOSエンジニアをやっていてFlutterに挑戦してみたい!ってことありませんか?

今回の登壇で話す内容

  • FlutterエンジニアからiOSエンジニアになっても大丈夫なのか
  • Flutterで身につけた技術はiOSでも使えるのか
  • iOSでの苦戦した技術などについて(RxSwiftなど)

今回の登壇は、現役大学生が長期インターンなどの実際の現場で経験した話に基づいてお話しさせていただきます。

FlutterからiOSエンジニア、iOSからFlutterエンジニアに移行する際に、不安や障壁の解消をしたいと思います!!

2
ルーキーズLT(5分)

FlutterでSwiftUIぽい書き方を再現する

naruogram naruogram

Flutterを使っていて、UIの構築する際に、SwiftUIぽい書き方をしたいと思いませんか?

最近の海外でFlutterをSwiftUIぽい書き方をするのが流行っています。その導入方法からメリット・デメリットを解説していきたいと思います。

今回はSwiftUI経験者、FlutterでSwiftUIぽい書き方を導入してみたい人向けの内容です。

FlutterでSwiftUIぽい書き方をするメリット

  • iOSエンジニアがすぐFlutterでUIを組むことができる
  • Flutter独特のネストを解消することができる
  • FlutterエンジニアがSwiftUIをキャッチアップする機会になる

このトークがSwiftUIの障壁、Flutterの障壁をなくすことができたら幸いです。

7
ルーキーズLT(5分)

~新卒2年目の挑戦~大規模アプリのリアーキテクチャを推進する

oskmr_ miseri

私たちのチームではSwift Concurrency対応やSwiftUIの導入に向けてFluxベースのアーキテクチャを脱却し、全面的なリアーキテクチャを進めています。
そんなチームである日突然リアーキ担当に任命された新卒2年目の私。
Swift Concurrencyヨクワカラナイ、大規模なプロジェクト初めての若手エンジニアがどのようにしてプロジェクトを推進したのか、その挑戦を5分で紹介します。

本トークでは若手がリーダーシップをとって大きなプロジェクトを推進する際の視点から、以下の内容に焦点を当ててお話しします。

  • リアーキテクチャにいたる背景と課題
  • 新しいアーキテクチャの設計
  • チームで浸透させるための取り組み
11
ルーキーズLT(5分)

アーキテクチャとテスト音痴の僕がTCAに出会って変わった

shino8rayu9 shino-chan

アーキテクチャを使ってアプリを作る経験やテストを書いた経験がなく、どこか負い目を感じていました。
そんな僕がThe Composable Architecture(TCA)と出会い、学び、業務のアプリに導入したことで見える世界が変わりました。
TCA導入のビフォーアフターでどうコードの可読性が上がったか、どう迷いなくテストが書けるようになったかの感動をお伝えします。

界隈ではすでに多くの方々がTCAの良さを発信されていますが、ぜひ僕のようにアーキテクチャやテストについて何をどうやったらいいのかわからない方々に向けてお話ししたい内容です。
きっとあなたもTCAを触ってみたくなるはず!

7