レギュラートーク(20分)

Androidと比較しながらおさえる! 新しいHuman Interface Guidelineの勘所と活用法

m_yamada0617 明渡 麻衣花

2023年6月、iOSアプリ開発者におなじみHuman Interface Guideline(以下HIG)が大幅に更新されました。
更新前は、迷える初心者から「これからアプリ開発するならiOSとAndroidどちらがいい?」と相談を受けた場合、私は迷わずAndroidを薦めました。
理由の1つは、Googleの公式ドキュメントのほうがアプリ開発者へ圧倒的に親切だから。この理由が解消しました。

このセッションでは私のiOS・Android・Flutter開発経験を活かしつつ、以下についてお話します。

  • AndroidやFlutterで採用されているMaterial Designのガイドラインと比較しつつ、HIGの基本理念をおさらい
  • プラットフォームを問わず、ネイティブアプリを開発する上で大事にしたいこと引用集
  • Appleのアプリケーション開発にきっと役立つHIG活用法
2
LT(5分)

SwiftUI x Metal Shader 入門と応用

shmdevelop 服部 智

iOS 17.0からSwiftUIでのLayer表示効果にMetal Shaderが使えるようになりました。

View表示を波うたせたり色を変えたりする加工処理が簡潔に呼び出せるようになっています。

シンプルな色の変更から、形状加工、パラメータの動的な変更など一通りの使い方と応用を
デモとソースコードを使って解説していきます。

シェーダー未経験の方でも理解でき、応用したくなるセッションにしたいと思います。

3
レギュラートーク(20分)

運用10年目サービスにおけるデザインシステムを念頭に置いたコンポーネント戦略

BOBG1018Vi ぼぶ

皆様このような経験はございませんか?

  • 作成するこのボタンやシートが,既に定義しているコンポーネントと少し異なっている
  • 既存コンポーネントを説明しても,今回だけはこの仕様で実装してほしいと相談された
  • 既存コンポーネントを修正を試みるが,影響範囲が広すぎる
  • そうして出来上がったコンポーネントの亜種が継ぎ足されて,数ヶ月経過した

本トークでは,運用10年目サービスにおけるデザインシステムを念頭に置いたコンポーネント戦略についてご紹介します

  • 組織に対するコンポーネント定義の説明
  • デザイナーとの定義・実装方針の決め方
  • SwiftUIとUIKitの併用
  • VRTやUICatalogの活用
  • Atomic Designを模した実装方針
  • Androidも含めた統一的な命名・仕様

このトーク内容が,皆様の開発を加速させるきっかけになることを願っております

1
ルーキーズLT(5分)

プログラミング言語処理系の単位を落単した湯婆婆「カリー化というのかい?贅沢な名だねぇ。今日からお前の名前は部分適用だ!」

akihiro_kokubo Akihiro Kokubo

「高階関数」「カリー化」「部分適用」
これらのワードを読むと今にもめまいがしそうですね。
普段からSwiftを使う人なら、目にした回数を数え上げるとキリがないでしょう。耳にタコができて仕方がないでしょう。
さて、これらを人に説明してくださいと言われるとどうでしょうか?
ドキッとしたあなたは、湯婆婆と同じ間違いをするかもしれません。

このLTで話す内容

  • 関数型プログラミングの考え方
  • 高階関数とは
  • カリー化とは
  • 部分適用とは
  • 高階関数・カリー化・ 部分適用の使い所

対象者

  • タイトルを読んで、湯婆婆のセリフに違和感を持たなかった人
  • 関数型プログラミングの世界で出てくる概念を改めて整理したい人
11
レギュラートーク(20分)

ビジョンとサウンド:iPhoneを「目」と「耳」にする技術

_chocoyama たまねぎ

現在のiPhoneは、高度な認識能力を持つ「目」と「耳」を持っており、現実世界の物体や音の情報を簡単に取り込むことができるようになっています。
例えば、Vision/VisionKitを用いた物体・文字認識、ShazamKit/SoundAnalysisを用いた楽曲・環境音認識など、すぐ使える機能だけでも多数の技術が存在します。
本セッションではiOSで利用できる画像・音声認識周りの技術を整理し、それを用いた実装方法をデモを交えてご紹介いたします。

コンテンツ

  • 「目」となる技術(物体認識、文字認識)
  • 「耳」となる技術(楽曲認識、音声認識、環境音認識)
  • 各技術を用いたサンプル実装のデモ

聞き手の想定

  • 画像認識や音声認識周りの技術について、まずは深い理解よりも実現できる事の全体感を把握したい方
  • 実装方法の概要を掴み、自身のAppに組み込むイメージを持ちたい方
1
レギュラートーク(40分)

coremltoolsにコントリビュートして、色々な深層学習モデルをiOSで動かせるようにしよう!

fukafukatani 深谷亮祐

深層学習の進化とApple siliconの性能向上により、これまでにない深層学習アプリの実現が可能になってきています。
多くの深層学習モデルはPyTorchなどのフレームワークで公開されており、これをcoremltoolsでCoreML化することで、iOS上で最適なパフォーマンスで動作させることができます。
しかし、時にはcoremltoolsですんなりCoreML化できないモデルもあります。
こんなときは、coremltoolsのエンハンスという形でのOSSへのコントリビュートチャンスともいえます。
本セッションでは、実際のエンハンス事例を下にcoremltoolsコントリビュートの勘所をお話します。

  • coremltoolsの概要
  • coremltoolsの機能が足りないときの修正箇所の見つけ方と修正方法の考え方
  • 深層学習の計算グラフの変換を理解しよう
レギュラートーク(20分)

友人とのチーム開発を、計画的に進める仕組み作り

xiii11100 Aoi Takahashi

会社や学校などの組織に所属している人の中には、本業の合間時間に友人とソフトウェアを開発して
・共に技術を伸ばしたい
・願わくは一発当てたい
と思っている人もいるでしょう。

しかし、各メンバーの裁量だけで開発していては、計画的に開発を進められなかったり、開発に大きな偏りが生まれてしまいます。
その結果、チーム開発自体が自然消滅してしまったり、開発速度が遅くなり、リリースまで辿り着けなかったりすると思います。

本発表では、実際に 3 年以上に渡って友人 2 人とチーム開発をしてきた実体験を交えながら、チーム開発を計画的に進める仕組み作りについて紹介します。
これから友人とチーム開発をしてみたい、現在しているけど難航している、という人たちの役に立てばと思います。

紹介例としては
・週に 1 回の定例会を設けよう
・タスク目標ではなく、作業時間目標を立てよう
などがあります。

ルーキーズLT(5分)

ViewInspector 使ってSwiftUIのテスト書いてみようって話

ios_hamada dahama

みなさん、SwiftUIでテストをどのように書いていますか?

本LTでは、SwiftUIのテストを行える ViewInspector というライブラリの紹介を行います。
SwiftUI時代のテスト実装の選択肢として ViewInspector どうでしょうか。

以下は本LTで話す内容の概要です。

  • ViewInspectorとは何か?
  • ViewInspectorを使ったテストの例
  • ViewInspectorの利点とデメリット
  • その他のSwiftUIテストに関する情報
1
レギュラートーク(40分)

iOS×マイコンで実現する水耕栽培の自動化を目指して〜全ての家庭で水耕栽培ができる未来を見据えて〜

oka_yuuji oka

いきなりですが、普段私たちが口にする食べ物について自分で作ってみたいと考えたことはありませんか?
昨今農場従事者が減る一方、水耕栽培を利用した農場ファームが広がり、大規模で自動化された生産が主流となりつつあります。
そんな自動化された栽培が家庭でもできたらいいなと思い、始めた「iOSとマイコンで実現する水耕栽培自動化の検証」について紹介したいと思います。
本トークでは水耕栽培の基本的な話しから必要なセンサーや選定に至った経緯を踏まえ、どのようなマイコンを使いそれらとiOSをどのように紐づけて自動化を検証したか紹介したいと思います。
これであなたもきっと水耕栽培を始めてみたいと思うはず。

4
レギュラートーク(40分)

詳解!Swift Playground Book

nirazo Kenzo Nirasawa

学習指導要領の改訂に伴い、プログラミング教育は2020年度からついに必修化されました。
AppleからSwift Playground Bookを使った中学校向けの教材もリリースされています。

教材として利用できるPlayground Bookですが、実際に作ったことのある開発者は少なく、どのように作成すればいいか全くわからない、という方も多いのではないでしょうか?

本トークではXcodeでPlayground Bookを作る方法を詳細に解説します。
実際にコード見ながら、Playground Bookが完成するまでの道のりを一緒に体験しましょう。

作り方やBook内での表現方法のみならず、Playground Bookでできることとできないこと、ユーザの入力がどのようにプレビューに反映されるのかなど、
Playground Bookについてより詳細に知れる40分です。

2
レギュラートーク(20分)

KMM×個人開発プロジェクトで「後悔した私」から、これから「KMMしたいあなた」へ

mesummery Natsui

マルチプラットフォーム開発手法のひとつとして、KMM(Kotlin Multiplatform Mobile)を耳にする機会が増えてきました。安定版のリリースがまだにも関わらず、すでに商用アプリでの導入例がいくつも見られます。一方で、個人開発でKMMを採用している方はまだ少ないのではないでしょうか?

このセッションでは、個人開発でKMMを利用するメリットとハードル、有効活用のためのヒントをご紹介します。
KMMの特徴のひとつは「導入のしやすさ」ですが、うっかり飛びつくのは後悔のもと。

  1. KMMの概要とメリット
  2. 導入時のハードル:
    • 共有範囲の選択
    • 学習コスト
    • 開発環境
  3. おすすめの開発スタイル:
    • 仕様とスタイルの明確化

を個人開発という視点から、企業と個人開発でのKMM導入経験に基づいてお話します。

2
レギュラートーク(20分)

JSON アニメーションを読み書く

motoshima1150 motoshima1150

昨今 SwiftUI でアニメーション表現が行いやすくなりましたが、 iOS / Android 共通で表現する際にはLottieファイルを扱うことが多いです。。
LottieとはAirbnbが開発している、SVGアニメーションライブラリです。動画などに比べて、ファイルサイズが小さくとても便利なライブラリです。

アニメーションのやり取りにはJSONファイルで行うことが多いですが、デザイナーから受け取ってそのままコードで利用することが多いのではないでしょうか。
このトークでは、デザイナーから受け取っている謎のJSONファイルを理解し、適切な利用やデザイナーとのコミュニケーションに役立つ一助になれば幸いです。

  • 何が書かれているのか。
  • 何ができて何ができないか。
  • どうやって作られているのか。
  • KeyPathでJSONファイルを書き換える。
4
レギュラートーク(20分)

Swiftへの貢献を楽しもう!コントリビュート手順とテスト技法の実践ガイド

ojun_9 ojun

本トークでは、OSSとしてのSwiftへの貢献の重要性と、私自身のコントリビュート経験を共有します。
初めての方でも参加しやすいよう、Swiftのコードベースに貢献するための具体的な手順を紹介します。

さらに、Swiftの品質を保つための重要な要素であるテストについても触れます。
特に、LLVMのテストツール「lit」を活用したテスト方法を説明します。
これにより、Swiftへの貢献が順調に進められ、コードの品質を保つことができます。

本トークを通して、参加者の皆さんがSwiftのコードにカジュアルにPRを投げれるように、そしてそれが、SwiftのOSSコミュニティの成長に貢献できれば幸いです。

このトークはSwiftへの貢献に興味がある方やテストスキルを向上させたい方を対象としています。
Swiftコミュニティへの貢献を検討している方に、このトークが役立つことを願っています!

7
LT(5分)

明日からペアプロで使える!ナビゲーターフレーズ集

motoshima1150 motoshima1150

ペアプロは実際にコードを記述するドライバーと、そのサポートとして操作指示を出すナビゲーターに分かれて実装をする手法です。
リモートによる開発が一般的になり、画面共有を通してペアプロ(モブプロ)を行うことが増えました。

みなさんはペアプロでこんな経験ございませんか?
「あの、、ちょっと名前よくわかんないんですけど、左上のフォルダのアイコンをクリックして・・・あ、その右、左から2番目です!それですそれです!」
相手に伝えるのにも時間がかかっていて、スマートではありません。

本LTでは、以下のような具体的な実例を交えたXcodeを想定したナビゲートフレーズをご紹介します。
ぜひ、本LTのナビゲートフレーズを使って、よりスムーズなペアプロ体験を実現しましょう!

  • テスト用のデータを確認したい
  • 特定のフォルダやクラスに移動したい
  • コードの特定の行数や変数名を指定したい
5
レギュラートーク(20分)

CIツール選定のコツ

akinari_ito 伊藤 明成

CIツール選定は、iOSアプリ開発に限らずプロジェクトにおいて重要な要素です。本発表では、スキルマーケット『ココナラ』アプリ開発で経験した、CIツール移行で得た知見を共有し、予算・工数・保守性といった観点から、CIツール移行を検討する際に考慮したポイントについても、話せる範囲でお話しします。最終的な判断にいたった経緯や選定した理由が、CIツール移行を迷っているかたの手助けになれれば幸いです。

レギュラートーク(20分)

VisionFrameworkとARKitで拡張現実な名刺アプリを作る

zit247 zit247

VisionFrameworkは顔認識や文字認識の処理ができるAppleが公式にサポートするフレームワークです。
iOS16から文字認識機能に日本語が対応しました。 日本でもアプリに応用しやすく、活用できる場面が増えそうですね。

このセッションではVisionFrameworkとARKitを使って名刺の情報を読み取り、拡張現実に情報が浮き出てくる名刺アプリの実装をお話しします。

・VisionFrameworkの使い方
・文字認識の難しいところ
・ARKitでの3Dオブジェクトの表現
・エンジニアに刺さる名刺の作成

一見複雑そうな画像処理やAR表現をわかりやすく解説します。
最新技術を使った創造的な名刺を作ってみたくありませんか?

レギュラートーク(40分)

UICollectionViewで気持ちよいリスト体験をつくる

shimastriper shimastripe

UICollectionViewには、複雑なレイアウトを実現する多くのアップデートがあります。
特に、iOS 14でListsというUITableView相当の機能がサポートされ、より柔軟に実装できる環境が整いました。

しかし移行を試みると、Registration・Configuration・CompositonalLayoutなど、様々な新しい概念が立ちはだかります。
既存機能の移行にはモダンなAPIのコンセプトなどを俯瞰的に理解する必要があります。

本セッションでは、日本経済新聞社の紙面ビューアーアプリの実例をもとにトピックを包括的に紹介します。前半は、移行に必要となる各種概念やAPI仕様を体系的に整理します。
後半では、実践的に導入する方法を解説します。たとえば、大量の記事を表示、続きを滑らかに読み込む・セルの可変サイズ・スワイプなど、実プロダクトで要となるTipsを扱います。

3
ルーキーズLT(5分)

限られた時間で成果を出す!ハッカソンでiOSアプリを効率良く作るときの結論構成

ojun_9 ojun

「限られた時間で成果を出す!ハッカソンでiOSアプリを効率良く作るときの結論構成」へようこそ!

ハッカソンという制約のある環境で、短期間で品質の高いiOSアプリを開発することは困難です。
本トークでは、この困難を乗り越え、成功を収めるための手法を提案します。

特に焦点を当てるのは、アプリ開発の全フェーズにおける高速なコミュニケーションと改善のプロセスです。
私たちの実体験をもとに、具体的な事例と結論構成が、どのようにハッカソンの成功へと導き、参加者をチャンピオンにするかを解説します。

開発者がハッカソンで直面する問題と解決策について説明し、限られた時間を最大限に活用して高品質なアプリを作る為の具体的な道筋を示すことが本トークの目的です。

これからハッカソンに参加しようと考えている皆さん、このトークは皆さんのためのものです!皆さんの楽しいハッカソン体験、ここから始まります!

LT(5分)

Package.swift を Type-Safe に改善!ちょっと豊かな SwiftPM 生活

shimastriper shimastripe

Swift Package Manager を利用したマルチモジュール構成が注目を集めています。
しかし、Swift Package Manager を使った構成では Package.swift に全てを記載しなければいけません。
マルチモジュール化が進むほど、構成ファイルが肥大化する課題に直面されている方も多いのではないでしょうか?
またコード内では文字列ベースで指定する箇所が多く、ちょっとした記法のミスやTypoのエラーを解消することにも時間がかかりがちです。

安心してください。Package.swift は Swift です。 Swifty に書けます。
この LT ではそんな Package.swift を改善する Tips を紹介し、みなさまの Package.swift をより豊かなものにする提案をします。

4
レギュラートーク(20分)

今こそCoreData

coffeegyunyu 日向強

WWDC 23で、新たにSwiftDataが発表されました。
これは新たにSwiftでデータを永続化できる仕組みで、データのクエリやフィルターなどを備えたものになっています。
また、同じくデータ永続化に使われるCoreDataですが、CoreDataで定義されたモデルをSwiftDataに変換できることも発表されています。

本セッションでは、そんなCoreDataにスポットをあて、CoreDataで使うことのできるさまざまな機能をご紹介します。
CoreDataを扱ったことのない人でも、SwiftDataへの移行の足掛かりとして参考にしていただければ幸いです。

  • SwiftUIとの連携
  • Derived attribute
  • NSComparisonPredicateなど複雑なクエリの作成
3