ルーキーズ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の組み合わせにより、アプリ開発の新しい可能性がどのように広がるかを提示します。

採択
2024/08/23 17:35〜
Track A
ルーキーズLT(5分)

なぜデフォルトが青色!? Tint Colorの理由に迫る

akidon0000 akidon0000

iOS開発者なら誰しも一度は目にする、デフォルトの青いTint Color。この色が選ばれた理由について、考えたことはありますか?本トークでは、その裏に隠された秘密を探ります。

まず、Appleのデザイン哲学や他OSとの比較、歴史的な経緯に基づき選択の理由を明らかにしていきます。次に、青色が持つ視覚的な特性について、色彩理論や人間の視覚に関する研究を交えながら、なぜ青色が適しているのかを探ります。

このトークを通じて、Appleのデザイン哲学やその背後にある考え方を深く理解することができるようになります。そしてデフォルトの青色を軽視せず、その価値を再評価することで、より洗練されたデザイン選択ができるようになるでしょう。

3
ルーキーズ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がない環境でも柔軟に対応できるようになり、開発の選択肢が大幅に広がるようになります。このトークを通じて、あなたも新たな技術的アイデアを得ることができるでしょう。

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

4
ルーキーズLT(5分)

人生逃げ続けてきたiOSエンジニアがさすがにこのままではヤバイので、なんとか逃げ切る為に今後身につけるべきスキルを考えて絶望するまで

小林直人

何もやる気がなくのらりくらりと生きてきた人間
1社目(iOSエンジニア)を辞めて2年間ニートした
プライベートで技術を調べることがない(猛省)
操作感とかUI系はちょっと関心がある(勉強はしてない。感性。)

そろそろ本当に年齢やキャリアを考慮してプランを立てなくちゃいけないので、必要なことをちゃんと考えてみる。
・技術面(swift問わず)
・組織での立ち回り

-- 以下すごく大事 --
・足は引っ張りたくない
・仕事してる感は欲しい
・評価もされたい、お金欲しい
・頼られたい、かっこつけたい

ルーキーズLT(5分)

SwiftUIでKeyframe Animationを活用してユーザー体験を高める

matsu

アニメーションはアプリケーションのユーザー体験を向上させる重要な要素です。
iOS 17のSwiftUIでサポートされたKeyframe Animationを活用することで、高度で魅力的なアニメーションを効率的に実装できるようになりました。
本トークでは、以下の内容について説明します。

  • Keyframe Animationの基本
  • Keyframe Animationを用いた実用的なアニメーション例
  • 利点、注意点

魅力的でインタラクティブなアニメーションを実現するための参考になれば幸いです。

1
ルーキーズLT(5分)

Spotlight上でアプリを見つけやすく!CoreSpotlightとINAlternativeAppNameの強力コンビ

Mike_Regain 近藤米功

皆さん、iPhoneのSpotlight機能をご存知ですか?

MacのSpotlight機能は多くの方が利用していますが、iPhoneにもSpotlight機能が存在します。
Spotlightを活用することでユーザーにとってアプリを見つけやすくすることができます。
そしてアプリの検索性を高めるために重要なのがCoreSpotlightとINAlternativeAppNameです。
例えば、レシピアプリを開発している場合、ユーザーが「美味しい料理」と検索することで、あなたのアプリがSpotlight上でヒットするように設定できます。

このトークでは以下の内容をカバーします:

  1. CoreSpotlightとINAlternativeAppNameの概要と基本的な実装方法の説明
  2. 検索キーワードの種類を増やし、Spotlight上でアプリの表示頻度を上げる方法を実際の実装例を交えて説明します
  3. CoreSpotlightとINAlternativeAppNameの利点・欠点の比較

このセッションを通じて、CoreSpotlightとINAlternativeAppNameを駆使し、皆さんのアプリをより多くのユーザーに届けましょう!

6
ルーキーズLT(5分)

SwiftUIでの図形描画と手書き文字入力の実現方法

gurensouen オダギリ133

SwiftUIが発表されてから早5年が経ちました。皆さんのプロダクトにもSwiftUIが採用されているのではないでしょうか。

我々は2年前から、SwiftUIを用いて図形描画や画面に直接触れて文字を書くといった機能を実装してきました。
これらの機能は、ユーザーインターフェースの向上や特定のアプリケーションでの必須機能として求められているからです。
本LTでは、SwiftUIを使った図形や文字の描画を実装する際の勘所をメインにお話しします。特に、以下のトピックに焦点を当てます。
・図形描画の際に直面した技術的な工夫
・画面に直接文字を書く際の工夫

これらのトピックを通じて、皆さんがSwiftUIでお絵描きするのって簡単なんだと感じてもらえれば、嬉しい限りです。

4
ルーキーズLT(5分)

今すぐ切ろうiOS16サポート!? SwiftUIの進化でViewの作成がここまで楽になりました

小鷲純平

SwiftUIが登場して早くも5年が経ち、今や多くのプロジェクトでSwiftUIの導入が進められています。
しかし同時に多くの開発者がSwiftUIの限界を目の当たりにし、「このViewを簡潔にSwiftUIで作るのは難しい…」、「UIKitを使わないと作れない…」と嘆いてきました。

本セッションでは5年の月日を経て進化したSwiftUIの機能を紹介します。
そして、以前はUIKitの力を頼りつつ苦労していたが現在では新機能を使って楽に実装できるようになったViewの作成事例を紹介していきます。

皆様のプロジェクトのViewの見直しやリファクタリングに役立てば幸いです。

3
ルーキーズLT(5分)

Drag & Dropを理解しよう!

toshi_ios_jp Toshiyana

アプリ内でDrag & Dropは活用していますか?
Drag & Dropとは、コンテンツをある場所から別の場所にドラッグして移動したり複製したりする手段です。アプリ内である部分から別の部分へ、またはアプリから別のアプリへ転送することが可能です。

SwiftUI登場時点でDrag & Dropの実装はできましたが、カスタムタイプのコンテンツだと転送処理が複雑になるという課題がありました。しかし、iOS16から導入されたTransferableプロトコルを用いると簡単に実装できるようになります。

本トークでは以下の内容を解説します。

  • Drag & Dropの導入のプラクティス
  • SwiftUIによるDrag & Dropの実装方法
  • iOS16から利用可能なTransferableプロトコル
  • 実装上の難点とその対策

参加者の皆様が、Drag & Dropのプラクティスや実装の理解の手助けになることを目指します!

ルーキーズLT(5分)

iOSと外部機器連携

大栗

SPIDERPLUSは、外部機器で検査結果を計測する機能があります。
外部機器との接続にはBluetoothを利用しており、ハマりポイントなどを紹介します。

  • 機器の調達
  • お客さんのところでは再現するが
  • Bluetoothのバージョンアップ
  • 機器の不具合
    など
1
ルーキーズLT(5分)

XcodeGenを利用したベースアプリの作成と運用

MAMIKO

ある日、「UIは同じで、APIの向き先・アプリ内で使用するリソース・アプリの名前・BundleID等だけを変えたアプリをいくつか作りたい」といった要望が社内で上がりました。

同じようなUIなのに別々にアプリを作り、それを一つずつ運用していくのって面倒ですよね。
Targetで分けるにしても、xcodeprojファイルをレビューする必要が出てきて同じく面倒ですよね。

そんな課題をXcodeGenを用いて解決した(swiftファイルは共通で、makeコマンドで各アプリごとのプロジェクトファイルを作成し、必要な値を全て切り替わるように対応した)内容になります。
また、アプリ完成後の運用方法についても触れようと思います。

トークの構成としては、以下を想定しております。

  1. 概要の説明
    • トーク概要について説明いたします。
  2. 背景の説明
    • そもそもなんでこのような要望が社内で上がったのかについて、私が所属している企業の説明も交えて説明いたします。
  3. XcodeGen/実装内容の説明
    • XcodeGenとはなんぞやについて説明いたします。
    • makefile/project.yamlの中身を解説しながら、実装について説明いたします。
  4. 運用について
    • このアプリの運用方法について簡単に説明いたします。
ルーキーズLT(5分)

業務改善ツールをmacOSで作ってみよう!

kirio998877 Kirio

みなさんは、業務の効率化のためにちょっとしたツールを探していたのに、時間だけが過ぎてしまったという経験はありませんか?
また、やっと見つけても会社のMacに入れるには手続きが必要で、簡単には入れられなかったというような経験はありませんか?

そんな時は思い切って、自分でツールを作ってみてはいかがでしょうか!

普段iOSアプリを開発している方であれば、SwiftUIを使って簡単にmacOSアプリを開発することができます。
このトークでは、私が実際に業務改善のために開発したmacOSアプリを例に、開発の手順やiOSとの違いを詳しく紹介します。

業務改善ツールを開発しながら、macOSアプリについて知識を深めていきましょう!

ルーキーズLT(5分)

エンジニア業務未経験のビジネス職が一年で大型プロジェクトのリードエンジニアになるまで

MAMIKO

トークの構成として以下を考えております。

  1. 自己紹介

    • プロフィール、現在所属している会社と担当業務について説明します。
  2. 業務未経験からiOSエンジニアになるために取り組んだこと

    • 学習方法や使用した教材、学習のスケジュールについて詳しく説明します。
  3. iOSエンジニアとして業務で取り組んだこと、業務外で取り組んだこと

    • 具体的なプロジェクトやタスクの例を紹介します。
    • どのようなことを意識して実務経験を積んだか紹介します。
    • 業務外でのスキルアップ方法(例:コミュニティ参加、個人プロジェクト)についても触れます。
  4. リードエンジニアにアサインされた現在から振り返って

    • リードエンジニアにアサインされるまでに特に重要だったことを振り返ります。
    • 自身の成長や学び、そして今後の目標についても述べます。
1
ルーキーズLT(5分)

ハッピーパスだけ実装したい!APIと連携する画面で正常系に集中するための仕組みづくり

masaichi masaichi

画面を作る上での典型的なシナリオとして、ネットワークからデータを読み込み、それを表示するというものがあります。このシナリオでは、データの読み込み中、エラー処理、正常系など、多くのパターンを網羅する必要があり、しっかり作り込むのは意外と難しいものです。

皆さんも、ひとまず正常系だけを作って、他の部分は後回しにしようと考えたことがあるでしょう。しかし、その結果、後からエラー処理などを追加するのを忘れてしまったり、大変な思いをした経験はありませんか?

本セッションでは、正常系に注力するために、非同期に取得する値を扱う型とそれを表示するViewを整理しました。具体的には、非同期に取得する値を扱う画面の状態を整理し、そのための値型と、それをSwiftUIでどのように扱うかを紹介します。

1
ルーキーズLT(5分)

Custom Keyboard Extensionで楽しむ最高の麻雀ライフ🀄

0__1_tea TAKEDA Yuki

みなさん麻雀は好きですか?僕は今めちゃくちゃに麻雀にハマっています!
麻雀は配られた手札の入れ替えを繰り返すことで役を作り点数を競うゲームです。
その腕を磨く手段として、手札の組み合わせ(牌姿)からどれを入れ替えるかを検討する「何切る問題」というものがあります。
「何切る問題」をこなすことで日々麻雀プレイヤーは雀力の向上を図っており、僕もその中の一人です。
そんな趣味が高じて牌姿の入力をサポートするアプリを作るようになりました。
今回のトークではその開発で得た知見と麻雀というゲームの素晴らしさをみなさんに共有します。

話す内容:

  • 開発した牌姿入力キーボードのご紹介
  • 麻雀牌にまつわるUnicodeと絵文字の関係、それらの挙動と注意点

これらの内容から麻雀にまつわる開発の知見、ひいては趣味から始めるアプリ開発の面白さを伝えます。

9
ルーキーズLT(5分)

Swift6への道 ~Strict Concurrency Checking対応~

神野成紀

現在弊社で進めているSwift 6の対応において、Strict Concurrency Checking(厳密な並行性チェック)についてお話します。特に、弊社がCompleteモードでこの機能に対応している過程で直面した課題とその解決策に焦点を当てます。
まず、Completeモードを有効にしたことでアプリにどのような影響があったのかを詳しく説明します。そして、今後どのように対応を進めていくかについても触れます。

具体的な内容としては、以下のポイントについて詳細に解説します:
・ 非同期処理で利用しているCombineフレームワークのSendable対応
・ Singletonで利用しているクラスのActor化
・ モデル層でDevice情報を取得するために使用しているUIDeviceなどの取得方法の設計見直し

これらの具体例を通じて、Completeモードへのアプローチ方法やその効果、課題について共有します。これにより、他の開発者の皆様がSwift 6への移行をスムーズに進めるための参考になれば幸いです。

1
ルーキーズLT(5分)

最低サポートOSをiOS15からiOS16に上げることでアプリ開発はどう変わるか

Mucchooooo ヤズジュ夢佐

このLTでは、最低サポートOSをiOS15からiOS16に上げることで、アプリ開発にどれぐらいのインパクトがあるのかを説明します。

目次:

  1. SwiftUIをはじめとしたiOS16の新機能や改良点を紹介し、具体例を交えて解説します。
  2. 現在の世界のiOSシェアの割合を分析し、iOS 15のサポートを切ることによるリスクについても現実的な視点から説明します。
  3. 世の中の有名iOSアプリがiOSをどのバージョンまでサポートしているのか、リアルなデータを紹介します。

このトークがiOS15のサポートを切るか悩んでいる開発者の判断材料として役立つことができれば幸いです。

2
ルーキーズLT(5分)

前提知識なしで学ぶ、カスタムGPTの開発方法とGPTストアでの公開手順

kumapo

昨年11月、OpenAIはGPTsを発表しました。この機能により、ユーザーは特定のタスクを実行するためのカスタムGPTを作成できるようになりました。
例えば、Appleの公式ドキュメント2万ページを基に、SwiftUIに関する質問に回答するGPTsが作成されています。

さらに、OpenAIはGPTsの開発者に収益を分配するプログラムを開始予定であるとアナウンスしています。
これにより、さらに多くの開発者がGPTsの開発に取り組むようになるでしょう。

著者は、個人でGPTsを開発し、GPTストアで公開した経験があります。本トークでは、この経験を基に、GPTsの開発方法を前提知識なしに解説します。
具体的には、APIリクエストをおこなうアクションを登録し、GPTsを外部サービスと連携させる方法を述べます。
さらに、GPTストアに公開する際の注意点(実名を公開しない方法やJailbreakingへの対策など)についてもフォローします。

本トークを聞くことで、自分のアイデアをGPTsとして形にする方法を学ぶことができます。
あなたがオリジナルのGPTsを開発し、世界へと公開するきっかけになれば幸いです。

ルーキーズLT(5分)

Swift Playgroundsで挑む!はじめてのiOSアプリ開発 - お絵描き練習ゲームを作ろう

wiroha wiroha

Swift Playgroundsは、iPadで動作する開発環境です。MacやXcodeを使わずにiPadで開発できるため、iOSエンジニア以外の人でも手軽にiOS開発に挑戦できます。このトークでは、DevRelである私が初めてのiOSアプリとしてごくシンプルなお絵描き練習ゲームを開発した学びを紹介します!
開発したアプリは、絵の定番の基礎練習である「正確な円を描くこと」をスコア化するゲームです。

  • Swift Playgroundsとは
  • 作ったアプリ
  • ここが良かった!
    • ゲームで学べる
    • 操作が直感的
    • そのまま実機で動く
    • 寝転んで開発できる
  • ここで詰まった!
    • OSのアップデートに8時間
    • なぜかアプリが開けない
    • なぜかアプリが増える
    • デバッグで求められる、正確に円を描くスキル
  • まとめ
    • 学習アプリとしての優秀さ
    • Xcodeとの使い分け

このLTにより、人事や広報など非エンジニアのiOSDC参加者がアプリ開発に挑戦する助けになれば良いなと思います。またSwift Playgroundsを使ったことがないiOSエンジニアの方にも新たな発見と気付きになることを期待しています!