ルーキーズ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エンジニアの方にも新たな発見と気付きになることを期待しています!

ルーキーズLT(5分)

WWDC創設期から現在まで

yamakentoc yamaken

WWDCはいつから始まったか知っていますか?
2010年…?2000年…?いえ、実はWWDCの始まりは1990年代まで遡ります。もっと言えばその前身となるイベントは更に昔から開催されています。
WWDCの公式サイトはその年のものに更新されていくため、10年前や20年前の情報はもちろん、30年前の1990年代の情報なんてそう簡単に得られるものではありません。

今回私は可能な限り、創設当時のWWDCや、その前身となるイベントについて調べてみました。
私たちはその年のWWDCの情報を追いかけることが多いですが、一度昔のWWDCを覗いてみませんか?

このトークは以下について話します。

  • WWDCができるまで
  • 初のWWDCはどのようなイベントだったのか
  • 創設期から現在までどのようなものが発表されたのか

WWDCは毎年最新の情報を得る機会となるため、今や私たちのプロダクトを成長させるためには必要不可欠なイベントとなりました。このトークを通じてその歴史を探る旅へ出ませんか?

2
ルーキーズLT(5分)

USキーボードでの英かな入力切り替えアプリの 「再発明」を通して学んだこと

Kotarong1 Kotaro Suto

USキーボードを使っていると左右の⌘キーを使って英数入力とかな入力を切り替えたくなることが多いと思います。この機能を実現するためのアプリは既に存在しますが、このLTでは、私が行った再発明を通じて学んだ、iOS開発においてあまり触れる機会のないSwiftUIやAppKitの機能、そして開発中に直面した課題について紹介します。

発表に含まれる内容:

  • MenuBarExtra、GroupedFormStyle などの紹介
  • NSEvent.addGlobalMonitorForEvents()の使用方法と注意点について
  • CGEvent、CGKeyCode について
  • 仮想キーコードはどんなものがあるのか
  • SwiftUIとNSEvent.addGlobalMonitorForEventsの相性問題
2
ルーキーズLT(5分)

5分で学ぶRealityKit: AR空間上のオブジェクトを自由に動かすコツ

shoryu927 tatsubee

RealityKitはiOSやvisionOS向けのARアプリケーションを開発するための強力なフレームワークです。
これを用いることで、任意のオブジェクトを現実世界に呼び出すことが簡単に実現可能です。
では移動や回転(Transform)はどうでしょうか?

並行移動や単純な回転をさせることは簡単です。しかし、少し複雑な挙動をさせようとすると途端に難しくなります。
私の場合、「オブジェクトの向きをカメラに追従させる」機能を実装する際に沼にハマり、これを解決するためにオイラー角や行列を使った計算が必要でした。

このようにRealityKitを扱う際にはオイラー角や行列、ワールド座標にローカル座標など、普段の開発ではあまり見慣れない概念を適切に扱う必要がありますが、これらの概念を理解し、コツを知ることで、実は簡単に扱えるようになります。

本LTでは、この「オブジェクトの向きをカメラに追従させる」という具体的なユースケースを例に、一見難しく見えるオイラー角や行列を使ったオブジェクトのTransformを、簡単に考え・実装する方法を5分間でお伝えします!

2
ルーキーズLT(5分)

文系からエンジニアへ: 独学でiOS開発を習得した道のり

Matsuo Takuma

皆さんはプログラミングやiOSアプリ開発をどのように習得しましたか?
私は、頼れる人が周りにいない状況で、独学でプログラミングとiOSアプリ開発を学んできました。

このセッションでは、iOSアプリ開発を始めた理由から、当時のメモやソースコード、開発したアプリを紹介しながら、技術習得のための取り組みや歩み等をお話しします。また、独学での学習を続けるためのメンタル管理の方法等についても共有します。

具体的なトピックは以下の通りです。

  • プログラミングを始め、iOSアプリ開発を選んだ理由
  • 当時のメモ、ソースコード、開発したアプリを踏まえた技術習得の取り組みと歩み
  • 継続できた理由
  • メンタルを維持するためのTips
  • 今後の目標