ルーキーズLT(5分)

iOSでもネットワークグラフを描画したい!

charlie_dev_ios チャリオ

皆さんはネットワークグラフというものをご存知でしょうか?ネットワークグラフは身近な例ではSNSでの人の繋がりや路線図など、モノの繋がりを視覚化するために使用されます。しかし多くの場合、ネットワークグラフの作成にはデータが扱いやすく描画ライブラリが多く存在するPythonやJavascriptなどが使用されます。

でもそんなネットワークグラフをiPhoneやiPadで眺め、あわよくば触りたい、Webではなくネイティブで実装したい、そうは思いませんか?

本トークではiOSでネットワークグラフの描画を実現する過程を紹介します。ネットワークグラフ描画の仕組みについて簡単な解説から始め、SwiftUIとグラフィック処理や計算が得意なMetal、それぞれの切り口で実装して得た課題や試行錯誤の結果を共有し、最終形をお見せします。

あなたもネイティブ表現力の可能性を探ってみませんか?

1
ルーキーズLT(5分)

Base64で動画や画像を保存してみた

yuhei.ueno

文字データでデータをやりとりしていた時代に戻ろう!(爆)
そのBase64を使い、画像や動画や音声をiOS上で扱ってみようという試みです。
またそういったデータをUserDefaultsやCoreDataに保存して使ってみて、実用性はあるのか?というのも調べてみようと思います。

また最近ではこんな使い道もあるのでは?こんなところに使われているよ という点も調べてみようと思います。

Wikipedia引用
Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MIMEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。

1
ルーキーズLT(5分)

Apple Vision Proの現地購入レポート

nkjzm Nakaji Kohki

今年の2月にApple Vision Proがリリースされましたが、残念ながら日本での販売はありませんでした。しかし、VR元年の頃からApple製のHead Mounted Displayを心待ちにしていた私は、どうしても「いち早く手に入れたい!触りたい!!」という想いから、はるばる日本から現地へ飛び購入をしてきました。

このセッションでは、国外でガジェットを購入する際に必要となる様々な知見(具体的には決済方法、関税、技適マークなど)について、現地のリアルな体験を交えながらご紹介します。ぜひ皆さんが同じようなチャレンジをする際の参考にしていただければと思います。

ルーキーズLT(5分)

Unity初心者のiOSエンジニアが、UnityからSwiftのコードを呼び出してみた

Kaito Kishimoto

Unityを使って開発をしている際に、Swiftのあの機能が使えたらな...と思う時がありませんか?
今回はUnityからSwiftのコードを呼ぶにはどうすればいいのかを調べて実装した経験をお話しします。

このトークでは、以下の内容について紹介します。

  • C#で記載したスクリプトからSwiftのコードを呼ぶための準備や必要なコードなどを紹介します。

このトークを通じて、UnityとSwiftの連携方法を学び、UnityプロジェクトでiOSのネイティブ機能を活用することで、アプリ開発に役立てていただければと思います。

ルーキーズLT(5分)

App Review Guidelines 「違反」なるべく集めてみた

mrs1669 しろくま

アプリ完成 → App Storeに提出
「これで全世界に公開だ!」と 悦に浸っていると、その後に審査でリジェクトされてリリースできない経験をした方も多いのではないでしょうか?

リジェクトされた際、「ガイドライン 1.2.3 に違反」 (1.2.3は架空の例です) のように、ガイドラインの条文だけが添付されることがあります。 そのため、具体的に何が問題でリジェクトされたのかがわからないこともよくあります。 何度かAppleとやりとりをして修正したり、丁寧に説明して再審査をお願いした結果、審査を通過した経験を持つ方もいるかと思います。

リジェクトの経験は次回に活かすことができ、どのような行為がリジェクトされるかを理解していれば、次のリリース時には注意を払うことができます。 App Review Guidelines自体、定期的に更新されます。 また私の体感ですが、同じレビューガイドラインの文言でも、時代が経つにつれて審査基準も変わってきているように感じます。

このLTでは、最近アプリを作成してリリース審査に提出した際に経験した様々なガイドライン違反についての知見を共有いたします。

1
ルーキーズLT(5分)

「百聞は一見にしかず」に一石を投じる

Mika

私たちは普段、視覚を通して多くの情報を得ていますが、実は聴覚には情報処理の面で視覚を超える優れた特徴があります。聴覚は音の時間変化を理解する能力に優れ、音程や音量の変化を鋭敏に感じ取ることができるため、新たなデータの理解につながる可能性があります。

皆さんは Swift Charts の VoiceOver 機能を試したことがありますか?その中には Audio Graph というアクセシビリティ機能の一つで、視覚に障がいのある方々向けに、データの分布や推移を音のピッチを用いて表現する機能があります。実のところ、この機能は全てのユーザーにとって非常に興味深いものです。私が初めて Swift Charts の VoiceOver 対応を行ったとき、その音がまるで音楽のように聞こえたことに驚きました。

本トークでは以下の内容についてお話しします。

  • チャートごとの Audio Graph が奏でる音色
  • さまざまなデータの音を聴いてみる
  • Audio Graph を用いた音楽活動

視覚的なチャートや文章だけでは伝わらない情報を、音を通じて受け取ることで、今まで見えてこなかった新しい側面が見えてくるかもしれません。皆さんもAudio Graph という新たな表現の形を体験してみませんか?

2
ルーキーズLT(5分)

iOS 17で進化したCoreLocationAPIの紹介

shake__551 shake

iOS 17で変更された新しいCoreLocationAPIについて、その機能と改良点を紹介します.

話すこと

  • Core Location APIの変更点について
    • バックグラウンドで位置情報を取得する方法
    • ライフサイクルの変化

話さないこと

  • 具体的な導入事例
  • 「ドキュメントに書かれていることやWWDC2023で話されている内容」以外のこと
ルーキーズLT(5分)

「xcrun simctl」を活用してiOSシミュレータをより便利に操作しよう

glassfiber2023 glassfiber

iOSシミュレータを操作するための便利なコマンド「xcrun simctl」をご存知でしょうか?

例えば、ローカルストレージにデータを保存しているとき、開発中にデータ構造を変更することがあります。そのとき、古いデータを削除したくなることが多いでしょう。通常、アプリを削除するとすべてのデータが消えてしまいますが、一部のデータを残しておきたい場合はシミュレータのフォルダをFinderで探し、特定のファイルだけを手動で消す必要があります。
この手間のかかる作業も、「xcrun simctl」を使えば、シェルスクリプト一発で簡単に行うことができます!

さらに、「xcrun simctl」を使えば、アプリの削除と再インストールを自動化することも可能です。これにより、開発効率が大幅に向上することは間違いありません。
本トークでは、これらの便利な使い方を具体的なコマンド例とともに詳しくご紹介します。

ルーキーズLT(5分)

App Clip Codeを解析してみた!

mrs1669 しろくま

みなさん、App Clip Codeってご存知ですか? WWDC2020で発表されたApp Clipは、アプリをインストールせずにちょこっとだけ使える便利な機能です。 そして、このApp ClipをQRコードのように読み取るだけで、すぐに使用できるコードがApp Clip Codeです。 開発者のみなさんであれば実は自分で簡単に作れます!

ところで、「え、QRコードなら読めるけど、App Clip Codeって読めるの?」って思いますよね? え、思わないですか?? App Clip Codeは残念ながら読め..ないですが、一定の規則性があることはわかりました。

このLTでは、私が様々なApp Clip Codeを生成して解析する中で見つけた法則性についてお伝えします。 みなさんと一緒にこの法則性を解き明かしていけると嬉しいです!

ルーキーズLT(5分)

Boost Your Job Hunt: Leveraging ChatGPT for iOS Career Moves

kent_strong_dev Kent Strong

Unlock the power of ChatGPT to revolutionize your job-hunting process as an iOS engineer or others. Discover how to gather critical information about potential employers efficiently and gain a competitive edge in the job market. Learn how to quickly gather details on salaries, job conditions, requirements, and company performance metrics like sales. This session will provide practical tips on using AI to streamline your search, save time, and focus on what matters most—landing your dream job, like . Join us to explore this cutting-edge approach and elevate your career trajectory.

ルーキーズLT(5分)

なぜActorでRace Conditionを防げないのか?

yuto_nakano44 中野 湧仁

Swiftの新しい並行処理モデル「Swift Concurrency」の一環として追加された「Actor」について、たった5分でその基本概念と利点について解説し、ActorでRace Conditionを防げない要因を明らかにします。
このトークを通して、Actorの基本概念、その背景、そしてどのようにして実務で直面する並行処理の課題を解決できるのかを簡潔に理解することができます。
短い時間ながらも、具体的かつ実践的な知識を身につけられる内容となっています。
以下のポイントを簡潔に取り上げます。

【Actorの基本概念と動機】
・なぜActorが導入されたのか。
・従来の並行処理でどのような課題があったのか。
【Actorが解決する課題】
・どのようにして問題を解決するのか。
・実際の業務でどのようなメリットがあるのか。
【Actorの制約と限界】
・Actorが解決できない問題について。
・data raceとrace conditionの違い。

2
ルーキーズLT(5分)

Firebase Dynamic Links 廃止に伴う Adjust 完全移行計画

KSCap_main Ken Sato

Firebase Dynamic Links はアプリ内の特定コンテンツへ直接遷移できるディープリンクサービスとして重宝されてきましたが、来年の2025年8月25日に完全に終了するとアナウンスされています。

Google が無料で提供していたことや導入の容易さから、個人アプリでも広く導入されていたことでしょう。
私が担当しているプロダクトにおいても、機能仕様およびマーケティング施策の観点から中核サービスとして利用していました。

そのような中 Firebase Dynamic Links の廃止が突如発表されました。
Firebase 公式からは Dynamic Links 非推奨に伴う移行ガイドが公開されていますが、期日の猶予や対応観点の不明瞭さから、実際に移行を始めているサービスはまだ多くないでしょう。

Firebase Dynamic Links に替わる案として様々な選択肢が挙げられますが、私が担当しているプロダクトでは Adjust を利用した方針に舵を切りました。

この発表では、数ある選択肢から何故 Adjust を採用したのか、また実際の置き換え事例を踏まえ、詳しくご紹介します。

4
ルーキーズLT(5分)

最新技術でiOSアプリを革新する:Osushi開発の裏側

Ktombow1110 とんとんぼ

WWDC23 ではさまざまなツールやフレームワーク、アップデートが施されました。
しかし、多くの方が「iOS 17からしか使えない・・・」と落胆されたのではないでしょうか。

新しい技術を導入してみたい一方で、実務や個人アプリに取り入れるのは難しいと感じることもありますよね。

しかし、心配ご無用です!iOS エンジニアの皆さん!
そのお悩みにお答えします。

本LTでは、 iOS関連のニュースを定期的に配信する Web サイト「iOS Osushi🍣」が iOS 17専用のアプリ「Osushi」 の開発秘話や開発で得られた知見を紹介します。

具体的には、以下のポイントについて解説します。

  • このアプリを作った経緯
  • Osushiで使われている技術の紹介
  • iOS 17の新機能を活用する方法
  • 実際の開発プロセスと課題克服の方法

この LT を通じて、最新技術を使ったアプリ開発の具体的な方法を学びましょう!

ルーキーズLT(5分)

iOSアプリをOSS化して得た知見と落とし穴

Ktombow1110 とんとんぼ

皆さんは「OSSなモバイルアプリ」と聞いて、いくつ思い浮かぶでしょうか?
そして、Webアプリやライブラリと比べると、その数が少ないと感じることはありませんか?

このLTでは、 iOS 関連のニュースを定期的に配信する Web サイト「iOS Osushi🍣」のモバイルアプリ版 「Osushi」をOSSとして公開する際に行った対応についてご紹介します。

具体的には以下のトピックを取り上げます。

  • OSSの魅力
  • 公開する際の準備と対応
  • 遭遇した課題とその解決
  • 他のOSSプロジェクトの事例

このLTは、「これからOSSなアプリを作ってみたい」「自分の開発したアプリをOSSにしてみたい」と考えている方々にとっての必見のトークです。

ルーキーズLT(5分)

次世代型エンジニアの育成メソッド〜他業種連携と、たった1人のユーザーに価値を届ける開発〜

taaakopanman taaako

ソフトウェアエンジニアには、経済産業省のデジタルスキル標準にあるように、「変化の激しい状況の中でも、他のステークホルダーと柔軟に連携し、価値を生み出す」能力が求められます。

AI時代に求められるエンジニアの能力を伸ばすために、私たちは「エンジニアとクリエイターの共創」体験をつくり、たった一人のユーザーに絞って価値創出能力を鍛える「N1エンジニアリング」手法を活用しています。

本トークでは、クリエイターと共に開発を行う「N1エンジニアリング」の実績を基に、自らエンジニアとして共創した実体験と、全国の30名のエンジニアへ開発体験を提供した視点を持って、未来を担うエンジニアの育成手法を共有します。

具体的な内容は以下となります。
・他業種連携を強める共通認識の形成方法:
 プランナー・デザイナー・エンジニアの役割を再認識し、共創体験で見えた良き領域侵犯。
・ユーザーの本質理解を深めるためのN=1の分析方法:
 ユーザーの悩みにフォーカスし、課題解決に繋げるデプスインタビューと課題の着眼点。
・アイデアをMVP(Minimum Viable Product)に落とし込むプロセス:
 独自のフォーマットによるアイデア立案と、MVPへの棚卸し。

このトークが、次世代型エンジニアになりたいと思っている方や、次世代型エンジニアを育てたいと思う方へ、一つの手段として参考となれば幸いです。

ルーキーズLT(5分)

コンパイル結果を観察してSwiftのProtocolをより深く理解する

rapt_dev Ryu Noguchi

Swiftのプロトコルは、異なる型に共通のインターフェースを定義・提供しますが、プロトコル自体は直接的に型として機能しません。プロトコルの利用は、存在型、ジェネリクス、およびOpaque Typeを介して行われます。このトークでは、Swiftにおけるプロトコルの利用方法の違いがコンパイル結果に与える影響を観察し、最終的なパフォーマンスにどう影響するかを解析します。

キーワードは、プロトコルを実装した構造体をコンパイルすると生成される "Protocol Witness Table" です。このテーブルは、プロトコルのメソッドが構造体の具体的な実装にどのように対応するかをマッピングします。このトークでは簡単な例から生成したコンパイル結果をSwiftライクな擬似言語でわかりやすく提示し、このテーブルの具体的な役割を解説します。
特にジェネリクスやOpaque Typeを用いた場合のメソッド呼び出しのインライン化や性能面における存在型の特徴といったパフォーマンスに関わる部分を重点的に解説します。
最後に今回の調査で分かったこれら3つの方法の利点と欠点を簡単にまとめます。

このトークはプロトコルの扱いに慣れてきたSwiftプログラマに向けたものです。
このトークを通じてプロトコルの理解が深まり、自信を持って3つの方法を使い分けられるようになることを目指しています。

ルーキーズLT(5分)

新卒エンジニアが自社サービスをとことん触り尽くすことで見えてきたモノ

森岡 蒼

私はこの春、自社開発の企業に新卒入社しました。
かなり大規模なサービスを扱っているので、はじめはコードを読んでもちんぷんかんぷん。
バグ修正の際も、該当コードを特定するのでさえかなり時間がかかっていました。
すぐさまメンターの方に相談すると、
「自社のサービスに出来るだけ毎日触れてください。仕様書と照らしながら。」 と言われ、 「それだけ?」 と思いながらも実践してみることに。
それ以来、仕事プライベート問わず毎日30分から1時間ほど自社サービスに触れるようにしています。
その際、具体的には以下を意識しました。

  1. ドキュメントやデザインと見比べて仕様を確認し、挙動や設計がよくわからないところはコードをチェックする
  2. 疑問に思ったことは職種を問わず色々な人に聞く
  3. 仕様書から漏れている内容はすぐにドキュメントを書く

この習慣を続けることで、バグ修正のスピードが大幅に向上しただけでなく、サービス全体の理解が深まり、遥かに効率的に業務を進めることができるようになりました。

入社間もない時期に仕様理解をガチるとめっちゃお得だよ!という話を具体例を交えてお話ししたいと思います。

ルーキーズLT(5分)

SwiftにRustを組み合わせてアプリの移植性と性能を高める

rapt_dev Ryu Noguchi

Swiftでのアプリ開発は直感的であり、多くの開発者に支持されていますが、性能や安全性で注目を浴びている言語Rustと組み合わせることによって、プロダクトの移植性や性能をさらに引き上げることができます。このトークでは、Rust製ライブラリをSwiftアプリケーションに組み込む手順を、わかりやすく説明します。

前半は、RustをC言語のライブラリとしてビルドし、ライブラリをSwiftや他のclang系言語で使えるように、適切な設定を施す方法を紹介します。

後半はライブラリをSwiftで使う方法を二つ紹介します。一つはSwiftのコンパイラを使った直接的なアプローチ、もう一つはSwift Package Managerを利用した方法です。各手法の特長と具体的な適用手順を簡潔に説明します。

また、SwiftUIとの組み合わせ例も紹介するので、Rustの機能をフロントエンドにどう活かすことができるか、具体的なイメージを持っていただけるはずです。

このトークは、Rustなど他の言語にも興味があるSwift開発者や、アプリの移植性や性能を高めたい方に向けたものです。RustとSwiftの組み合わせにより、アプリ開発の新しい可能性がどのように広がるかを提示します。

ルーキーズLT(5分)

GitHubホステッドランナーからGithubセルフホストランナーへCI/CD運用を切替して得たメリットとデメリット

パッタイ大好き

iOSアプリ開発のCI/CD運用には、どのツールを使用していますか。多くの企業がソース管理にGitHubを利用していると思いますが、GitHub Actionsの利用には無料枠があり、それを超えるとビルド時間に応じて料金が発生します。

本トークでは、GitHubホステッドランナーからセルフホストランナーに切り替えた際のメリットとデメリットについて、具体的な事例を交えてご紹介します。これにより、皆さんがセルフホストランナー環境を構築する際のヒントを提供することを目指しています。

具体的には以下のポイントをカバーします:

  1. 切り替えの動機と背景
  2. セルフホストランナーのセットアップ手順
  3. コスト削減効果の具体例
  4. 運用中の課題とその解決策
  5. セキュリティとパフォーマンスの比較
ルーキーズLT(5分)

APIのない大学ログインWebサービスをWKWebViewとJavaScriptでアプリ化する方法

akidon0000 akidon0000

今では多くの開発者にとって、APIはアプリ開発の基盤となっています。しかし、個人開発においてニッチな情報を取得したい場合、APIが提供されていないことが少なくありません。このトークでは、APIがない環境でも学生向けの学修サポートアプリを実現するために、WKWebViewによるJavaScriptとの相互通信などの活用事例について経緯を踏まえて紹介します。

APIが当たり前の時代に開発を始められた方々にとって、これらの技術を習得することで、APIがない環境でも柔軟に対応できるようになり、開発の選択肢が大幅に広がるようになります。このトークを通じて、あなたも新たな技術的アイデアを得ることができるでしょう。

また、大学に学生用のアプリがない学生開発者の皆さんへ
「自身で大学のアプリを作り、学生生活を向上させたい!」と思うきっかけなれば嬉しいです!

3