原始のiPhoneからカメラは搭載されていましたが、深度センサが搭載されたのは比較的最近のことです。カメラやGPSが、デジタルの世界と我々が生きる現実世界を繋ぐ重要な役割を担い、アプリ開発者に多くの創造性を与えてくれたのと同様に、「奥行き」がわかるようになったというのはアプリ開発の次元がひとつ増えたようなものです。本トークではiOSでの深度の扱いについて、取得方法だけではなく、細かいパラメータの意味やMetalでの処理まで詳解します。
私の担当するアプリでは、Auto-Renewable Subscriptionsを長らく運用してきました。
しかし、その運用を続ける上でぶつかった問題も多くありました。
Auto-Renewable Subscriptionsの運用事例を元に、ユーザにとって最高の形でプレミアムな機能を提供するために学んだことについてお話します。
差分更新のテクニックを使うと,IndexPathを持ち回ることなく,UITableViewの必要な箇所のみ挿入・削除できるようになります。
これはいつでも採用できる手法なのでしょうか? 0~5000行で変化するテーブルビューにも使えるでしょうか?
このトークでは主にトータルの更新パフォーマンスにフォーカスして,5000行規模の差分更新を実用的な速度にするために必要な,ボトルネックの解析と遭遇するトレードオフについて紹介します。
iPadで,コーディングをしたり,プログラミングの教科書のような使い方ができるSwift Playgrounds.最近では,カメラやBluetoothのAPIが解放され,Swift Playgrounds Bookを個人でアプリを通じて配布できるようにもなりました.この発表では,カメラの画像をリアルタイムに処理できるサンプルを例に,Swift Playgroundsのおもしろさ,Bookの開発および公開方法について解説します.
複数のiPhoneを、連携させたことがありますか?
一面にならんだ数十台のiPhoneにシンクロナイズドスイミングのような全く同じ表示をさせる……単純に見えますが、実は技術的にはとても高度なテクニックを必要とします。
フレームレート60fpsのiPhoneで、ぴったりあった動作を実現するためには端末間に許されたずれは、16ミリ秒以下。
これを実現するには、どんな要素技術、どんな設計、どんなテクニックを使えばよいでしょうか。
ObjC/Swift、アプリケーションアーキテクチャ、リアクティブ、テスト、CI/CDなど、2018年のアプリ開発環境は多くの情報とトレンドにあふれており、キャッチアップするだけでも一苦労です。
本セッションではこれら多くの情報を整理し、現在のアプリ開発環境全体を俯瞰します。アプリ開発初心者でどこから勉強すればいいかわからない方、経験者だけど開発環境をもっと良くできないかと考えている方の手助けになれば幸いです。
DeNAのライブ配信アプリPocochaで実装した画面全体に再生されるエフェクトの実装の話をします。
iOSでは再生出来ない透過動画の再生を行う実装や、それらの実装の中で利用した巨大なシーケンス画像群の再生に最適なアーキテクチャをAPNG/WEBPなどのフォーマットやUIImageView/OpenGLES/Metalなどのパフォーマンス比較から読み解きます。
iOSでは曲を再生する方法としてAVAudioPlayerやMediaPlayerなどがあります。しかし、それぞれのplayerごとに再生キューやライフサイクルを持っており、player間を跨いで連続再生をするのは直感的には実装できません。今回は上記2つ加えてyoutube iframe player・SpotifyPlayerのplayer間を跨いで連続再生できるmusic playerをprotocolを利用して実装した話をします。
iOSアプリにおいてビューに関する変更をテスト・レビューすることは負荷の高い作業のひとつです。現在のiOSアプリにおいてレイアウトのバッドプラクティスは、デバイスを判定する、contentInsetを自分で操作する、動的に制約を変更する、の3つです。このトークでは、実際のアプリのコードを用いて、壊れやすかったレイアウトを良いAutoLayoutの原則に従って修正した例を示し、堅牢でメンテナンスしやすいレイアウトとは何かを解説します。
「どうされましたか?」
「いろいろ頑張ってはみたんですが、うちの子全然治らないんです。顔が黄色くなったり赤くなったり、あとはいろいろ吐いてしまっていて。もうどうしたらいいのか…。」
「ふむ。デバッグ方法がわからないわけですね。症状によって見るべきポイントは異なりますし、そもそも症状は正確に判断しないといけません。私と一緒に症例とその対処方法を見てみましょう。」
キャスト
医者:私
親:開発者
子:AutoLayout
開発時間に占めるデバッグ時間の割合は少なくないため、この時間の短縮は開発速度を上げるためにとても重要です。この発表では、実際の中規模なアプリ開発で70%増もの開発速度向上を支えたデバッグノウハウを初心者にもわかりやすく紹介します。
このノウハウには、効果が高いデバッグの5W1Hの解説や、リビルドなしでデバッグする方法、便利なライブラリの紹介を含みます。開発速度が気になっている方はぜひ聞いてみてください!
ある人は言いました。「基本は理解・分解・再構築だ」と。
あなたは玩具や機械の仕組みを知るために分解してみたことはありませんか?
一見不思議で魔法のように見える仕組みも、基本要素に分解すれば理解しやすくなります。
そして理解したかどうか確認する最も良い手段は自分で作ってみることです。
ここでは普段Metalなどの3D描画APIがGPUで行っている処理をあえてCPUで実装し、期待通りに描画されるのかを検証してみます。
単純にプッシュを打つだけでは意味がありません。カスタマーエンゲージを目指すならばカスタマーの分析を行う必要があり、さらに言うならばリアルタイム性の高い情報を使った分析が必要となります。Amazon Pinpointを利用するとEvent Streamを利用して簡単にリアルタイム分析を行えます。本セッションではリアルタイムな分析を行うためのアーキテクチャとそれを使ったマーケティングを行うためのベストプラクティスを紹介します。
圏論(カテゴリー理論)は、「対象」と対象間の「射」(関係性、構造)の集まりからなる「圏」を抽象的に扱う数学理論です。関数型プログラミングで度々登場する「モノイド」「関手」「自然変換」「モナド」の由来であり、さらには「米田の補題」「随伴」「極限」「F代数」「カン拡張」など、より高度な概念が登場します。この発表では、圏論から得られる様々な帰結について、Swiftの文法と型で分かりやすく解説していきます。