2023年6月、iOSアプリ開発者におなじみHuman Interface Guideline(以下HIG)が大幅に更新されました。
更新前は、迷える初心者から「これからアプリ開発するならiOSとAndroidどちらがいい?」と相談を受けた場合、私は迷わずAndroidを薦めました。
理由の1つは、Googleの公式ドキュメントのほうがアプリ開発者へ圧倒的に親切だから。この理由が解消しました。
このセッションでは私のiOS・Android・Flutter開発経験を活かしつつ、以下についてお話します。
iOS 17.0からSwiftUIでのLayer表示効果にMetal Shaderが使えるようになりました。
View表示を波うたせたり色を変えたりする加工処理が簡潔に呼び出せるようになっています。
シンプルな色の変更から、形状加工、パラメータの動的な変更など一通りの使い方と応用を
デモとソースコードを使って解説していきます。
シェーダー未経験の方でも理解でき、応用したくなるセッションにしたいと思います。
皆様このような経験はございませんか?
本トークでは,運用10年目サービスにおけるデザインシステムを念頭に置いたコンポーネント戦略についてご紹介します
このトーク内容が,皆様の開発を加速させるきっかけになることを願っております
「高階関数」「カリー化」「部分適用」
これらのワードを読むと今にもめまいがしそうですね。
普段からSwiftを使う人なら、目にした回数を数え上げるとキリがないでしょう。耳にタコができて仕方がないでしょう。
さて、これらを人に説明してくださいと言われるとどうでしょうか?
ドキッとしたあなたは、湯婆婆と同じ間違いをするかもしれません。
このLTで話す内容
対象者
現在のiPhoneは、高度な認識能力を持つ「目」と「耳」を持っており、現実世界の物体や音の情報を簡単に取り込むことができるようになっています。
例えば、Vision/VisionKitを用いた物体・文字認識、ShazamKit/SoundAnalysisを用いた楽曲・環境音認識など、すぐ使える機能だけでも多数の技術が存在します。
本セッションではiOSで利用できる画像・音声認識周りの技術を整理し、それを用いた実装方法をデモを交えてご紹介いたします。
コンテンツ
聞き手の想定
深層学習の進化とApple siliconの性能向上により、これまでにない深層学習アプリの実現が可能になってきています。
多くの深層学習モデルはPyTorchなどのフレームワークで公開されており、これをcoremltoolsでCoreML化することで、iOS上で最適なパフォーマンスで動作させることができます。
しかし、時にはcoremltoolsですんなりCoreML化できないモデルもあります。
こんなときは、coremltoolsのエンハンスという形でのOSSへのコントリビュートチャンスともいえます。
本セッションでは、実際のエンハンス事例を下にcoremltoolsコントリビュートの勘所をお話します。
会社や学校などの組織に所属している人の中には、本業の合間時間に友人とソフトウェアを開発して
・共に技術を伸ばしたい
・願わくは一発当てたい
と思っている人もいるでしょう。
しかし、各メンバーの裁量だけで開発していては、計画的に開発を進められなかったり、開発に大きな偏りが生まれてしまいます。
その結果、チーム開発自体が自然消滅してしまったり、開発速度が遅くなり、リリースまで辿り着けなかったりすると思います。
本発表では、実際に 3 年以上に渡って友人 2 人とチーム開発をしてきた実体験を交えながら、チーム開発を計画的に進める仕組み作りについて紹介します。
これから友人とチーム開発をしてみたい、現在しているけど難航している、という人たちの役に立てばと思います。
紹介例としては
・週に 1 回の定例会を設けよう
・タスク目標ではなく、作業時間目標を立てよう
などがあります。
みなさん、SwiftUIでテストをどのように書いていますか?
本LTでは、SwiftUIのテストを行える ViewInspector というライブラリの紹介を行います。
SwiftUI時代のテスト実装の選択肢として ViewInspector どうでしょうか。
以下は本LTで話す内容の概要です。
いきなりですが、普段私たちが口にする食べ物について自分で作ってみたいと考えたことはありませんか?
昨今農場従事者が減る一方、水耕栽培を利用した農場ファームが広がり、大規模で自動化された生産が主流となりつつあります。
そんな自動化された栽培が家庭でもできたらいいなと思い、始めた「iOSとマイコンで実現する水耕栽培自動化の検証」について紹介したいと思います。
本トークでは水耕栽培の基本的な話しから必要なセンサーや選定に至った経緯を踏まえ、どのようなマイコンを使いそれらとiOSをどのように紐づけて自動化を検証したか紹介したいと思います。
これであなたもきっと水耕栽培を始めてみたいと思うはず。
学習指導要領の改訂に伴い、プログラミング教育は2020年度からついに必修化されました。
AppleからSwift Playground Bookを使った中学校向けの教材もリリースされています。
教材として利用できるPlayground Bookですが、実際に作ったことのある開発者は少なく、どのように作成すればいいか全くわからない、という方も多いのではないでしょうか?
本トークではXcodeでPlayground Bookを作る方法を詳細に解説します。
実際にコード見ながら、Playground Bookが完成するまでの道のりを一緒に体験しましょう。
作り方やBook内での表現方法のみならず、Playground Bookでできることとできないこと、ユーザの入力がどのようにプレビューに反映されるのかなど、
Playground Bookについてより詳細に知れる40分です。
マルチプラットフォーム開発手法のひとつとして、KMM(Kotlin Multiplatform Mobile)を耳にする機会が増えてきました。安定版のリリースがまだにも関わらず、すでに商用アプリでの導入例がいくつも見られます。一方で、個人開発でKMMを採用している方はまだ少ないのではないでしょうか?
このセッションでは、個人開発でKMMを利用するメリットとハードル、有効活用のためのヒントをご紹介します。
KMMの特徴のひとつは「導入のしやすさ」ですが、うっかり飛びつくのは後悔のもと。
を個人開発という視点から、企業と個人開発でのKMM導入経験に基づいてお話します。
昨今 SwiftUI でアニメーション表現が行いやすくなりましたが、 iOS / Android 共通で表現する際にはLottieファイルを扱うことが多いです。。
LottieとはAirbnbが開発している、SVGアニメーションライブラリです。動画などに比べて、ファイルサイズが小さくとても便利なライブラリです。
アニメーションのやり取りにはJSONファイルで行うことが多いですが、デザイナーから受け取ってそのままコードで利用することが多いのではないでしょうか。
このトークでは、デザイナーから受け取っている謎のJSONファイルを理解し、適切な利用やデザイナーとのコミュニケーションに役立つ一助になれば幸いです。
本トークでは、OSSとしてのSwiftへの貢献の重要性と、私自身のコントリビュート経験を共有します。
初めての方でも参加しやすいよう、Swiftのコードベースに貢献するための具体的な手順を紹介します。
さらに、Swiftの品質を保つための重要な要素であるテストについても触れます。
特に、LLVMのテストツール「lit」を活用したテスト方法を説明します。
これにより、Swiftへの貢献が順調に進められ、コードの品質を保つことができます。
本トークを通して、参加者の皆さんがSwiftのコードにカジュアルにPRを投げれるように、そしてそれが、SwiftのOSSコミュニティの成長に貢献できれば幸いです。
このトークはSwiftへの貢献に興味がある方やテストスキルを向上させたい方を対象としています。
Swiftコミュニティへの貢献を検討している方に、このトークが役立つことを願っています!
ペアプロは実際にコードを記述するドライバーと、そのサポートとして操作指示を出すナビゲーターに分かれて実装をする手法です。
リモートによる開発が一般的になり、画面共有を通してペアプロ(モブプロ)を行うことが増えました。
みなさんはペアプロでこんな経験ございませんか?
「あの、、ちょっと名前よくわかんないんですけど、左上のフォルダのアイコンをクリックして・・・あ、その右、左から2番目です!それですそれです!」
相手に伝えるのにも時間がかかっていて、スマートではありません。
本LTでは、以下のような具体的な実例を交えたXcodeを想定したナビゲートフレーズをご紹介します。
ぜひ、本LTのナビゲートフレーズを使って、よりスムーズなペアプロ体験を実現しましょう!
CIツール選定は、iOSアプリ開発に限らずプロジェクトにおいて重要な要素です。本発表では、スキルマーケット『ココナラ』アプリ開発で経験した、CIツール移行で得た知見を共有し、予算・工数・保守性といった観点から、CIツール移行を検討する際に考慮したポイントについても、話せる範囲でお話しします。最終的な判断にいたった経緯や選定した理由が、CIツール移行を迷っているかたの手助けになれれば幸いです。
VisionFrameworkは顔認識や文字認識の処理ができるAppleが公式にサポートするフレームワークです。
iOS16から文字認識機能に日本語が対応しました。 日本でもアプリに応用しやすく、活用できる場面が増えそうですね。
このセッションではVisionFrameworkとARKitを使って名刺の情報を読み取り、拡張現実に情報が浮き出てくる名刺アプリの実装をお話しします。
・VisionFrameworkの使い方
・文字認識の難しいところ
・ARKitでの3Dオブジェクトの表現
・エンジニアに刺さる名刺の作成
一見複雑そうな画像処理やAR表現をわかりやすく解説します。
最新技術を使った創造的な名刺を作ってみたくありませんか?
UICollectionViewには、複雑なレイアウトを実現する多くのアップデートがあります。
特に、iOS 14でListsというUITableView相当の機能がサポートされ、より柔軟に実装できる環境が整いました。
しかし移行を試みると、Registration・Configuration・CompositonalLayoutなど、様々な新しい概念が立ちはだかります。
既存機能の移行にはモダンなAPIのコンセプトなどを俯瞰的に理解する必要があります。
本セッションでは、日本経済新聞社の紙面ビューアーアプリの実例をもとにトピックを包括的に紹介します。前半は、移行に必要となる各種概念やAPI仕様を体系的に整理します。
後半では、実践的に導入する方法を解説します。たとえば、大量の記事を表示、続きを滑らかに読み込む・セルの可変サイズ・スワイプなど、実プロダクトで要となるTipsを扱います。
「限られた時間で成果を出す!ハッカソンでiOSアプリを効率良く作るときの結論構成」へようこそ!
ハッカソンという制約のある環境で、短期間で品質の高いiOSアプリを開発することは困難です。
本トークでは、この困難を乗り越え、成功を収めるための手法を提案します。
特に焦点を当てるのは、アプリ開発の全フェーズにおける高速なコミュニケーションと改善のプロセスです。
私たちの実体験をもとに、具体的な事例と結論構成が、どのようにハッカソンの成功へと導き、参加者をチャンピオンにするかを解説します。
開発者がハッカソンで直面する問題と解決策について説明し、限られた時間を最大限に活用して高品質なアプリを作る為の具体的な道筋を示すことが本トークの目的です。
これからハッカソンに参加しようと考えている皆さん、このトークは皆さんのためのものです!皆さんの楽しいハッカソン体験、ここから始まります!
Swift Package Manager を利用したマルチモジュール構成が注目を集めています。
しかし、Swift Package Manager を使った構成では Package.swift に全てを記載しなければいけません。
マルチモジュール化が進むほど、構成ファイルが肥大化する課題に直面されている方も多いのではないでしょうか?
またコード内では文字列ベースで指定する箇所が多く、ちょっとした記法のミスやTypoのエラーを解消することにも時間がかかりがちです。
安心してください。Package.swift は Swift です。 Swifty に書けます。
この LT ではそんな Package.swift を改善する Tips を紹介し、みなさまの Package.swift をより豊かなものにする提案をします。
WWDC 23で、新たにSwiftDataが発表されました。
これは新たにSwiftでデータを永続化できる仕組みで、データのクエリやフィルターなどを備えたものになっています。
また、同じくデータ永続化に使われるCoreDataですが、CoreDataで定義されたモデルをSwiftDataに変換できることも発表されています。
本セッションでは、そんなCoreDataにスポットをあて、CoreDataで使うことのできるさまざまな機能をご紹介します。
CoreDataを扱ったことのない人でも、SwiftDataへの移行の足掛かりとして参考にしていただければ幸いです。