プロジェクトに新メンバーがjoinする際、初めに立ち塞がる壁が開発環境構築です。
また、いざ環境が出来上がったとしてもその後開発ツール(CocoaPods、SwiftLint、etc...)がアップデートされていることに気づかないとバージョン差異に起因する事故(おま環、コンフリクト、etc...)も起こりがちです。
そこで、自分の関与しているプロジェクトではgit-hooksによる開発環境の自動更新を実施しています。
本LTでは、意外と忘れられがちなgit-hooksとiOS開発における活用方法について紹介します。
サステナブルな開発環境、欲しくないですか?
WWDC2021で発表されたSwift Playground 4はiPadだけでアプリの開発からリリースまで行える機能が付き、とても話題になりました。
皆さん普段はMacBookで開発していて、私自身もその1人ですがあえてiPadだけで開発からリリースまでを行いました。
その苦難の道のりをお伝えさせて頂きます。
iOSプロジェクトでOpenAPIを採用した時に、Swiftコードの生成とその管理方法をどうすればいいのかは意外と悩みます。
そこで、Dockerを使った疎結合でシンプルなOpenAPIのコード生成と生成したSwiftコードの管理方法のベストプラクティスをご紹介します!
ちまたではDI(依存性の注入)が流行っているようですが、そもそもあなたのアプリで本当にDIは必要なんですかと再度問いたい!たぶん不要だよ!!
DIの種類、導入するべきかの判断、DIを使わない場合の代替方法をご紹介します。
AR表現を作る際にカメラの動きを合成用PCに送信する必要があり、その標準となっているのがFreeDというプロトコルです。
このプロトコルをSwiftで実装しiPhoneから情報送信できるようにしました。
プロトコルの概要を解説し、実装内容についてコードを見せながら説明します。
のデモをします。
デモ、ソース解説を中心とした、ARとiPhoneの可能性を開く楽しいセッションです。
Apple公式の認証システム「Sign in with Apple」。
Twitter等のサードパーティのログインサービスを提供している場合、Sign in with Appleの対応が必要となります。
そのため、Sign in with Apple対応をされたことがある方も多いのではないかと思います。
Sign in with AppleはOAuth, OpenID Connectが前提知識として必要となりますが、皆さんは理解をした上で自信を持って対応することができましたか?
特にサーバーサイドが担当する部分に関しては、公式ドキュメントだけでは理解が難しい部分もあります。
本セッションでは、前提知識として必要なOAuth, OpenID Connectに触れながら、Sign in with Appleの仕組みについて5分で紹介します。
現在、MapKitを使ったアプリを作成しており、大量の住所データにオリジナルピンを置いていく工程があります。
そこで住所の文字データを緯度経度の座標に変換させるCoreLocation 内のCLGeocoderクラス(ジオコーディング)を利用しました。
※緯度経度の座標から住所に変換する逆ジオコーディングも出来ます
そんな便利屋CLGeocoderにも苦手なことはある様で、大きく2つ気をつける点がある事、それに対して自分なりの解決策も含めてご紹介します。
【具体的には】
・ピンが表示されたり、表示されなかったりして毎回挙動が不安定だぞ!?
・断固として表示してくれないピンがあるぞ!?
・逆ジオコーディングで座標から日本の住所形式に変換する方法 などなど
Asset Catalogを使ってカラーの管理が出来るNamed Colorという機能、便利ですよね。
しかし、カラー名の変更が必要になった際に、Interface Builderで使用しているNamed Colorは参照が更新されません。
XMLをgrepしてカラー名を一括で置換することもできますが、Xcodeでファイルを開いたタイミングで色が適用されdiffが発生することもあります。
このLTでは、このようなNamed Colorの厄介な挙動を1つ1つ紐解いて、Named Colorに変更を加える際のベストプラクティスについて話します。
現在、愛知県の大学で大学側と協力し、出席管理アプリ・掲示板閲覧アプリを開発・運用している学生です!
出席管理アプリは教室内に設置されたBLEビーコンを用いて位置推定を行い、授業に出席登録できるアプリであり、
掲示板閲覧アプリは学生掲示板をスマートフォンから閲覧できるアプリです。
どちらもAppStoreにて公開・運用しております。
このLTではこれらのアプリで用いている技術や運用を紹介しますので
「エンターテイメントとほんの少しの知見共有」として聞いていただければ幸いです。
また、大学に出席管理アプリ・掲示板閲覧アプリがない学生の皆さんへ
「皆さんも大学のアプリを開発し、学生生活をよくしよう!!!!」というメッセージとなればいいなと思っています。
対象とする人:
プログラミング可能なロボットキットである「LEGO BOOST」の発売以降、Bluetoothによるリモートプログラミングに対応しているレゴのセットがたくさん発売されています。その数はなんと20以上!
その中にはプログラミングできることをアピールしていないセットも多くあります。プログラミング=マインドストームではありません。あなたがお持ちのセットも実はプログラミング対応しているかもしれませんよ?
本トークでは、レゴ社が公開している「LEGO Wireless Protocol」を中心に、どんな種類のレゴブロックがどんな感じでプログラミングできるかについてお話しします。あなたのレゴ作品をiPhoneやApple Watchとつなげて、思う通りに動かしましょう!
MDMの機能の一つである「Managed App Configuration」を使うと、MDMで配布したアプリごとに個別の設定ができるようになります。会社や教育現場において、全端末に設定を一括で行ったり、アプリの動作を強制変更させたりすることができる、大変便利な機能です。
Managed App Configurationは、アプリ開発者から見るとその仕組みや実装はとても簡単なのですが、MDMを使える環境がないと動作の確認やデバッグが難しいという難点があります。そのため、個人の開発者が対応をするのはなかなか難しいかもしれません。
本トークでは、教育現場でも使われているScratch専用ブラウザアプリ「Scrub」をManaged App Configurationに対応させた経験から、その実装方法や動作確認のやり方、デバッグ、対応のコツなどをお話しします。
株式会社JMDCでは、新規モバイルアプリの立ち上げに向けて企画・開発を進めています。
PMF達成前のプロダクトフェーズでは、優先すべき仮説からコンパクトに素早く検証を行う必要がありますが、時にストアの審査基準がプロダクトフェーズを進める足枷になることもしばしば...
そんな時React Native for Web(RNW)を使えば、モバイルアプリ開発用のリソースをそのままWebに転用し、Web上で高速なイテレーションを回すことができます。本セッションでは、RNWの紹介と、RNWを使った成長戦略を紹介します。
このLTはiOSコミュニティといままで関わったことがない技術広報がなぜプロポーザルを出したのか。そしてどうやって社内のiOSエンジニアを巻き込みプロポーザルを出すに至ったのか。多くの企業が「自社から登壇やプロポーザルが出されない」課題を抱えています。登壇に関する情報発信のノウハウを共有することで多種多様な企業、プロダクトの発表が増え、iOSコミュニティ全体の活性を促進することを期待しています。非エンジニアのかたにとってコミュニティとの関係性を構築していくエッセンスをお届けします。
ダイナミックデスクトップが登場してから早4年。
動く壁紙というのは、身近な存在になってきているのではないでしょうか?
AppStoreにも動く壁紙を設定できるアプリはちらほら存在します。
どのように実装しているのかは謎ですが、壁紙をハックするのはなんだか夢があって楽しそうですよね。
そんな方のために、このLTではmacOSの壁紙に関するハック術を紹介します。
YouTubeの動画も壁紙にできちゃうかもしれません!
この機会にあなたの壁紙をパワーアップしてみませんか?
API が絡む開発を行う際、大抵以下のような複数のビルド設定が必要になるかと思います。
今回 .env と Xcode の Run Script を使って各環境ごとに異なる API 接続用の値をビルド時にアプリに組み込む方法で開発を行ったのでその方法について共有します。
弊社アプリは長い開発期間の中で多くの負債を抱えていますが、複雑な依存関係や少ない開発リソース(現在iOS開発は1人)で通常施策の実装を行いながら改善する余裕がない等の理由でコアな部分の実装には手を入れられず放置されてきました。
負債の一つとして、弊社アプリには神(オブジェクト)がいらっしゃいます。
そこに含まれている内の一つ、API関連の機能はCodableも無い時代に作られているために現在メンテされていないライブラリに依存をしており、以前から改善したい機能として挙げられていました。
本トークではなんとなくで使われていたOpenAPIドキュメントをコード生成が正しく行えるように整備し、そこからコード生成を行い開発フローに組み込んだ方法について紹介します。
TabularDataはiOS 15/macOS 12から追加された、機械学習モデルの学習に使う表形式データを閲覧したり、加工したり、書き出したりするための新しいフレームワークです。
このセッションではオープンデータとして公開されているデータをTabularDataを使ってデータ処理する方法について紹介します。
以下のような内容を紹介する予定です
・TabularDataのAPIの紹介
・表形式データからのサマリー抽出について
・非構造化データの変換
・表形式データの結合
2018年に登場したFlutter。きっと当時は「またクロスプラットフォームフレームワークが出てきて、廃れていくのか?」と思った方もいると思いますが、今では様々なアプリで使われるようになりました。弊社の新規アプリ「Famm プリント」もFlutter製アプリの一つです。
「Flutter流行ってるし、そろそろ手を付けてみようかな」
「でも結局各プラットフォームのネイティブコード呼ばなきゃいけない場面出てきたりしない…?」
そんなことを思っている人もいるのではないでしょうか?
このトークでは、実際にFlutter製アプリを作ってみてネイティブコードを書いた場面はあったのか、ネイティブコードを書くことを求められるのはどんな場面かを話したいと思います。このトークによって、Flutter開発を躊躇していた方の背中をポンと押せたら幸いです。
Swift Package Manager (SPM)に対応したOSSライブラリが増えてきた昨今、CocoaPodsやCarthageからSPMへ移行を検討している方が結構いるのではないでしょうか?
しかし、正しく製品を提供するなら使用しているライブラリのライセンス表示は必須です。
そこで、CocoaPodsやCarthage向けのライセンス表示ライブラリはいくつかありますが、SPMに対応したものはあまり見かけなかったため仕組みを自作しました💪
仕組み作成の上での躓きどころを踏まえながら、Swift Packageのライセンスを収集して表示するまでの流れを説明します。
突然ですが、続けることって難しいですよね。例えば、機能開発しながらコツコツとリファクタリングすることや、テストを追加するなど。
でも忙しくなってしまうと後回しになって途中でその取り組みが超滅・・・なんて経験したことないですか?
そんな経験をしたことある方必見です!
ZOZOTOWN iOSチームには、緊急性は低いが重要度が高い「効果性の領域」と呼ばれる放っておくといつまでも解決されない課題を探し改善する取り組みがあります。
そしてその活動を2年ほど継続してきました。
本トークでは「継続」にフォーカスして、機能開発をしながらでも改善活動をし続けるために役立つ準備をご紹介したいと思います。
どれも簡単なことですが、効果は侮れません。続けたくてもなかなか続かない人の参考になれれば幸いです。