2023年6月、iOSアプリ開発者におなじみHuman Interface Guideline(以下HIG)が大幅に更新されました。
更新前は、迷える初心者から「これからアプリ開発するならiOSとAndroidどちらがいい?」と相談を受けた場合、私は迷わずAndroidを薦めました。
理由の1つは、Googleの公式ドキュメントのほうがアプリ開発者へ圧倒的に親切だから。この理由が解消しました。
このセッションでは私のiOS・Android・Flutter開発経験を活かしつつ、以下についてお話します。
iOS 17.0からSwiftUIでのLayer表示効果にMetal Shaderが使えるようになりました。
View表示を波うたせたり色を変えたりする加工処理が簡潔に呼び出せるようになっています。
シンプルな色の変更から、形状加工、パラメータの動的な変更など一通りの使い方と応用を
デモとソースコードを使って解説していきます。
シェーダー未経験の方でも理解でき、応用したくなるセッションにしたいと思います。
パフォーマンスにネガティブな影響のあるコードは、意図せず簡単に書けてしまいます。
例えば、配列の中で条件に合う最初の要素を取得する場合はどうでしょうか?
配列に対し filter を適用した後に first を適用するよりも、first(where:) を用いる方が速いでしょう。
ならば、どのくらい速いのでしょうか?
このトークでは、パフォーマンスが悪化しうる6つのケースを挙げ、どのくらいの差が出るのかを実験・検証します。
実験の対象とする6つのケース
対象者
皆様このような経験はございませんか?
本トークでは,運用10年目サービスにおけるデザインシステムを念頭に置いたコンポーネント戦略についてご紹介します
このトーク内容が,皆様の開発を加速させるきっかけになることを願っております
「高階関数」「カリー化」「部分適用」
これらのワードを読むと今にもめまいがしそうですね。
普段からSwiftを使う人なら、目にした回数を数え上げるとキリがないでしょう。耳にタコができて仕方がないでしょう。
さて、これらを人に説明してくださいと言われるとどうでしょうか?
ドキッとしたあなたは、湯婆婆と同じ間違いをするかもしれません。
このLTで話す内容
対象者
スマートフォンにはさまざまな入出力のチャネルが搭載されています。
その中でも、現実世界の「音」を活用できる技術に関して、実は多数の機能が現在利用できる状況になっています。
本トークでは、一般的なアプリ開発では馴染みの薄い「音」をベースにした体験の構築方法について、基本的な技術の解説をはじめとして、具体的な活用例を交えてご紹介いたします。
コンテンツ
聞き手の想定
現在のiPhoneは、高度な認識能力を持つ「目」と「耳」を持っており、現実世界の物体や音の情報を簡単に取り込むことができるようになっています。
例えば、Vision/VisionKitを用いた物体・文字認識、ShazamKit/SoundAnalysisを用いた楽曲・環境音認識など、すぐ使える機能だけでも多数の技術が存在します。
本セッションではiOSで利用できる画像・音声認識周りの技術を整理し、それを用いた実装方法をデモを交えてご紹介いたします。
コンテンツ
聞き手の想定
WWDC2020で発表されたStoreKit testingは,テスト用のフレームワークです.
UnitTestとして課金テストを実行することはもちろん,StoreKit testingに必要なStoreKit configurationを用いると様々な恩恵を得ることができます.
動作環境がiOS14以上なStoreKit Testing.
導入自体は簡単なため,サクッと皆様のアプリにも取り入れませんか?
「iPhoneで他のデバイスを操作したい」と思ったことはありませんか?
Bluetoothを使用すれば、容易に行えますが、「ペリフェラル」や「セントラル」などの専門用語が難しく理解し辛い方もいると思います。
本トークでは、そんな方々を主な対象に、Bluetoothの基礎から話し、スマートキーの作成方法を必要な材料の選定、Core Bluetoothを用いたコーディング、そして実動の様子まで紹介したいと思います。
上記の内容にて、Bluetoothの基本的な知識から実践的な「スマートキーを作る」部分まで、わずか40分で学ぶことができます。
本トーク終了後には、あなた自身でスマートキーを作り、Bluetoothを用いたデバイスの設計・制作への第一歩となるでしょう。
深層学習の進化と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ツール移行を迷っているかたの手助けになれれば幸いです。