UIStackViewとても可愛いですよね!SwiftUI時代になれば使わなくなると思いますが、現状はまだまだUIStackViewを活用する機会は多くあると思います。
このLTでは、私が愛してやまないUIStackViewについて、こんなケースではUIStackViewでどう解決する?というのを逆引きレシピ形式で紹介できればと思います。
SharePlayとはiOS 15で登場した、FaceTime通話中に離れた場所の友達とアプリのコンテンツを共有する機能です。
iOS 16ではこのSharePlayは付加機能というよりはiOSの基幹機能へと進化を遂げたという印象を持ちました。
このLTではSharePlay / Group Activitiesについて5分でまとめて紹介します。
もちろん、iOS 16でのアップデート内容をメインに添えて!
みなさんはswift-format使っていますか?
コードを書きながらリアルタイムでswift-formatでチェックするだけでなく、最後の砦としてGitHubにpushされたコードをswift-formatでチェック・整形してもらうのとても便利ですよね。
このLTでは、GitHub Actionsでswift-formatを自動実行するまでに行なった以下の試行錯誤を共有して、より良い方法などみなさまにも相談できればと思います。
記号論 (記号学) という言葉を聞いたことはあるでしょうか。近代言語学の父と言われるソシュールにより基礎が築かれたとされ、彼は記号モデルについて二元論を唱道しています。これは「りんご」という言葉を考えたときに、実世界の“りんご”に「りんご」というラベルをつけているものであり、記号というのはラベルが対象の事物を指し示すことと言えます。記号論 (記号学) ではこれを足がかりとしその恣意性など記号に関する学問領域を指すものです。
田中久美子氏の名著「記号と再帰」(2010)は、記号とプログラミング言語の対応を特に再帰について探求したものです。1例を挙げると、関数型プログラムの識別子とその内容は先の「りんご」と “りんご” にあたるというような具合です。
本発表では5分で不動点関数と記号の再帰的定義を例にあげ、「記号と再帰」という本について興味をもってもらい、手にとってもらうことが目的です。
子育て4年目。
3年以上前、Apple純正ロンパースを着ていた小さな👶はすくすく育ち、
今ではiPadを自由自在に操れるようになり、幼児向けアプリに限らずいろんなアプリを楽しめるようになってきた。
一方で「なるほど、こういうUIだとわからなくなって泣いちゃうのか」という場面に遭遇することも。
そんな日々微笑ましく感じていたのも束の間、
ペアレンタルコントロールの重要性と偉大さに気づく日がやってきた。
子育ては十人十色。正解も失敗もないかもしれない。
でもだからこそ一例として伝えたい。
こうすればよかった、こうしてよかった。
2歳3歳が夢中になるコンテンツとは。
任天堂はすごい。
子ども向けアプリを開発するならこうして欲しい、こうすれば儲かりそう。
直接開発には関係ないけれど、これから子育てが控えているエンジニアの参考になれば…
そんなエピソードをお届けします。
みなさんが初めて参加したiOSDCはいつでしょうか。
私が初めて参加したiOSDCは2018年のものでした。
初参加の2018年からiOS・Swift界隈のトレンドや新しい技術は目まぐるしく変化し、私が初めて参加した年からは想像もできないような進化を遂げています。
ところで、iOSDCにはYouTube公式チャンネルがあり、iOSDC2016からのセッション動画をなんと無料で視聴することができます。
このトークではiOSDCチャンネルにあげられている458本の動画を踏まえ、これまで6年分のiOSDCを5分に凝縮し、オフライン開催が戻ってきた今だからこそ、神速で振り返りを行っていきたいと思っています。
このトークを聞くことで、iOS・Swift界隈のトレンドを振り返るとともに、6年分のiOSDCの思い出を一気に蘇らせることを約束します。
既にOSSで公開されているライブラリや、実装済みの機能を使わずに自前で実装することを車輪の再発明と言います。
それはしばしば時間の無駄と思われがちですが、どんなに使い込まれたライブラリでもメンテナンスされなくなったら終わりです。
本LTでは、2年ほどメンテナンスが放置されたライブラリを捨てる為に自前でライブラリを再実装した際の知見をお話します。
多くのプログラミング言語に備わる機能 "String Interpolation" は、一般的には変数をプレースホルダーに展開する機能です。
しかし、Swiftでは、ある秘密が隠されていたのです!
そう、Swift実装では開発者に拡張手段が提供されていて、高度で静的な文字列操作を可能にします。
さらに、SwuiftUI.Textの機能が充実したことで、近年では単純なStringとしての表現を超え、活躍の幅は広がっています。
このトークでは、文字列操作としての典型的な使用方法から説明し、SwiftUI.Textと組み合わせた便利な活用方法を紹介します!
開発を進めているといつも決まったボイラープレートを書いていることがありませんか?
そこでXcode File Templateの出番です。
このLTではXcode File Templateを利用してコードを自動生成し開発効率をアップさせる方法について話します。
このLTがみなさんの開発効率向上につながれば幸いです。
WWDC21で発表されたObject Capture、皆さん触りましたか?
当時私はObject Captureのために家庭内稟議(YAuth)を通してM1チップ搭載MacBook Airを買いました!
本LTでは発表から1年が経つApple純正フォトグラメトリ機能であるObject Captureを今改めて振り返ります。
Object Captureの実例として、実際に出力した様々なUSDZファイルをご用意しました。
LT中にお手元のスマートフォンを使ってARでお試しいただきます!
Appleプラットフォームのアップデートは、一部を除き、最新OSのみに提供されます。
せっかく待望の新機能が登場しても、サポートOSポリシーによっては、使えるのは数年後...
ならば、自分で作って、来たる日に備えましょう。
実現する上での難易度は高いものかもしれませんが、多くは既存の仕組みを組み合わせることで、ソフトウェアとして解決できるはずです。
自分でバックポート実装を作ってみれば、新API、その周辺の仕組みについて熟知することができます。
このトークでは、2021年に登場したSwiftUI.AsyncImageを、すべてのSwiftUI環境にバックポートした経験を題材に、知見を話します。
似たようなレイアウトのViewがいくつかあった場合に、どのように実装しますか?
enumでtypeを定義してtypeごとにレイアウトを分岐したり、ベースクラスを作ってサブクラス側でレイアウトに必要な処理を行なったりなど、様々な実装方法があるかと思います。
本トークでは、実際にサービスで運用されているデザインを題材に、型パラメータのインジェクトを利用したViewのレイアウト方法についてお話します。
他のレイアウト方法とは、どういった違いがあるかなどもお話できればと思います。
様々な developer 向けのロードマップを公開している roadmap.sh
ここにはなぜか iOS developer 向けのロードマップが存在しません。これとは別に 2018年に reddit に投稿されたロードマップが存在し、これがよくできているのですが、4年も前なので、 Objective-C, UIKit, DispatchQueue に関しては、 Swift, SwiftUI, Concurrency と置き換わるものが有力になってきていて、こういった変遷を反映したロードマップを提案したいです。
本トークでは、以下の観点からお話ししようと思っています。
Xcode Project の Build Settings に潜む知っておきたいけどよく知らないそんなプロパティや Valueについてコールしまくります!
Kernel!Module!Bundle Loder!Build!Assets!Strip!Swift!Symbol!グイグイヨシコイ!🍾
みなさんご存知の通り、Swiftはオープンソースになってから、すでに汎用目的のプログラミング言語としてある程度の発展を遂げてきました。特にサーバサイドでの利用は意外と探せばメジャーなプロダクトでも採用例があったりします。
ところがServer Side Swiftを始めたい時、フレームワークを選ぶ必要がありますが、アップル謹製のいわゆるファーストパーティーライブラリーは存在しないため、複数あるサードパーティーライブラリーから選定する必要があります。
さて、一体どのフレームワークが一番私に適しているかな?一番熱いVapor?一番大きな会社がバックしてるsmoke-framework?それとも一番老舗であるPerfect?
このLTはこれらのフレームワークを一通り試してみた感想を伝えたいと思います!
Storyboard辛い!Auto Layout難しい!でもSwiftUIのおかげでこれらとおさらばだ!!
そんな甘い思い、私にもありました…まさに若さゆえの過ち…
そう、SwiftUIがリリースして3年経った今でも、まだ我々はレイアウトのナイトメアから解放されていません…
このLTは、そのSwiftUIのあるあるな罠を紹介し、そしてそれらの回避策をお伝えしたいと思います!
Visual Positioning Systemは周りの風景の情報を元に現実空間の中で自身の位置を特定する技術です。
私はサッカーJ2リーグの町田ゼルビアのホームスタジアム「町田GIONスタジアム」にて
iPhoneで数百枚画像撮影して点群作成し、VPS機能を用いてAR表現を実現しました。
そもそもiPhoneでスタジアムに立ち向かえるのか!
スタジアムでの現地作業という貴重な経験から得た知見を共有し、そこでどんな表現が実現できたのか画像と映像と共に熱く解説します。
サポートOSバージョン、どんどんあげていきたいですよね?
しかし、サポートバージョンを減らすとユーザーも減るため、プロダクトオーナーに渋られることもよくあります。
加えて、開発の現場では「サポートOSバージョンあげたいけど、結構気合で解決できるし……」というエンジニアと、
「エンジニアから要望も来ないから、あげなくてもいいか」というプロダクトオーナーという、お見合い状態になることもあります。
実はサポートOSバージョンをあげてもよさそうなのに、キッカケがない……そんなことはありませんか?
このトークではこういった課題を解決するため、
・アクティブユーザーのOSバージョン割合で判断するのは悪手!?本当に見るべき指標
・定期的にサポートOSバージョンアップを検討できるキッカケの仕組み
について話します。
このトークが皆さんのアプリのサポートOSバージョンアップにつながると嬉しいです。
swizzlingと聞くと、「ああ、使い道のない変な機能」と思われるかもしれません。
実際swizzlingでぐぐると「共通の処理を実装する」とか「共通処理を差し込む」といった文脈で説明されることが多いです。
このLTでは、実装ではなく、コードリーディングに用いることで処理の流れを容易に掴むことができ、ソースコードの理解が効率化される事例を紹介したいと思います。
iOSエンジニアとして、Apple プラットフォームエンジニアとしてそろそろ10年が経とうしてしています。
そして私は2人の娘と5歳の発達障害の息子を持つ父親でもあります。日々進化し続ける開発技術についていけず悩む日々でもあります。
コロナ禍においてリモートワークが導入され柔軟な働き方ができるようになり、家族とより近くなりありがたくも大変なこともあるようになりました。
私以外にも激動の日々を送る方がいらっしゃると思います。悩みつらみがありつつソフトウェアエンジニアとして壁を乗り越えることの難しさや、その中でSwiftや開発者コミュニティに提供できるものとは何なのかについてお話します。