iOSDC Japan 2019 トーク一覧

採択 レギュラートーク(30分)

今こそwatchOS

堤 修一 shu223
Apple Watchが登場し、WatchKitフレームワークが発表された当時は各社こぞって対応アプリ(実態はApp Extension)をリリースしたものでした。しかしApple Watchのデバイスとしての性能はとても貧弱でできることは非常に限られており、また開発環境は著しく不安定だったこともあり、watchOS 2の頃には開発者の間でのwatchOSアプリ開発ブームは去っていきました。

しかしそれから数年経ち、Apple Watchの性能は大きく向上し、watchOS 6ではついにIndependent Appも作れるようになりました。多くの機能(フレームワーク)がApple Watch側で動作することになり、「こんなアプリがウォッチ上で動いたらいいな」というアイデアの実現可能性は昔とは比べるべくもないほどに上がっています。

本トークでは、Apple Watch / watchOSリリース当初はできなかったが今ではできるようになったことを中心に、「watchOSアプリ開発の今」についてお話しします。
3
採択 レギュラートーク(60分)

SwiftyMath で学ぶ数学(抽象代数学)

さのたけと taketo1024
iOSDC 2017 でのトーク「Swift で数学のススメ」から 2年を経て、 SwiftyMath は ver 1.0 となりました。
このトークでは SwiftyMath のコードをベースに、抽象代数学の入門として

・基礎的な概念である「群・環・体」
・具体例としての数(整数・有理数・実数・複素数)・行列・多項式
・剰余類環、中国剰余定理、代数拡大

などについて解説します。これらの概念は数学専攻で学ぶもので、初学者にはハードルの高いものですが、抽象的な公理を protocol として、具体的な対象を struct として実装したコードと合わせて解説することで、Swift に慣れている人ならスンナリと理解できるようになることを目指します。

Swiftで代数学入門: https://qiita.com/taketo1024/items/bd356c59dc0559ee9a0b
SwiftyMath: https://github.com/taketo1024/SwiftyMath
7
採択 技術パッション共有トーク(60分)

普通に書くと即メモリーリーク!こんなに大変だけど俺はXamarin.iOSを使い続けるぜ!

Tomohiro Suzuki hiro128_777
皆さん、Xamarin の名前くらいは聞いた事がありますよね!

『ああ、C#で、iOSアプリが開発できるやつね。』

6年前、Objective-Cから逃げたくて手を出した、Xamarin.iOSは私に幸福をもたらすはずだった...

だがしかしそこに待ち受けていたのは底なし沼だった!

気づけばどんどん深掘りされる技術!
その底にたどり着いた時に膨大な、これ必要か⁉︎的な知識を得ている事に気づきました!

今明かされるXamarin.iOSの全貌!

●普通に書くと即メモリーリーク!
●幻の大地か!ネイティブとマネージド、2つの世界を行き来してメモリーリークのチェック!
●情報がないのでSwiftのコードを読む日々
●Swiftじゃダメだ!Objective-Cを理解せねば!
●あれ?俺何のためにXamarin.iOS始めたんだっけ?
●それでも俺はXamarin.iOSをやめない!
4
採択 iOSDCルーキーズLT(5分)

日本のサマータイムに苦しめられた話

uhooi the_uhooi
みなさんは以下の4日が何の日かご存知でしょうか?
・1948年5月2日
・1949年4月3日
・1950年5月7日
・1951年5月6日

正解は「日本におけるサマータイムの開始日」です。

実は日本でも1948〜1951年の4シーズンのみ、サマータイムが実施されていたことがあります。
Appleは日本のサマータイムを忠実に再現しており、タイムゾーンをJST(日本標準時)にすることで確認できます。

実際の業務で、サマータイムの開始日の文字列が日付型に変換できず、アプリが強制終了することがありました。
原因の追求とサマータイムの仕組みの調査に苦戦したので、本セッションではそのときのできごとを実際に対応した時間軸に沿って話します。
iOSのバージョンによって挙動が異なる点も苦しめられた一つです。

※本セッションではObjective-Cのコードのみ扱います。ただし、Swiftのみ扱っている方でも理解しやすい内容となっています。

【アジェンダ】
・日本のサマータイムについて
・サマータイムによる不具合の内容
・不具合の調査結果
・対応策の検討と、実際に対応した方法

【想定する聞き手】
・日本にサマータイムが導入されていたことを知らない人
・iOSアプリ開発でサマータイムを考慮したことがない人

【ゴール】
・日本で導入されていたサマータイムの境界日時を知り、取り扱いに気をつける日時だと認識する
・iOSにおける日本のサマータイムの実装を知る


「キング・クリムゾン…1時間もの時間が消し飛び、この世には「サマータイムが発生した」という「結果」だけが残るッ!!」
5
採択 LT(5分)

iOS 12以下でDark modeに対応した地獄の話

かっくん fromkk
私が個人的に開発している# Typeというアプリには、iOS 13が発表されるより前にRxSwiftを利用せずにDark mode機能を導入しました。導入するにあたって、

- Dark mode機能の考え方
- 実装方法
- iOS 13以降への対応

を紹介します。その上で実際にアプリにDark modeを導入する際に発生した表示崩れ修正地獄についても紹介します。
5
採択 iOSDCルーキーズLT(5分)

Property Delegatesがもたらす新しいSwiftプログラミング

darquro darquro
Swift 5のiOS13から使用できる機能の一つにProperty Delegates(SE-0258)というものがあります。
SwiftUIでも@StateなどすでにPropety Delegatesで実装されたものもあり、目にした方もいらっしゃると思います。

Property Delegatesはとてもユニークな機能で、これまで書いていたボイラープレートを解消できたり、アーキテクチャやコンポーネント設計を考える上でも、重要な機能の一つとなってくるのではないでしょうか?

この発表ではProperty Delegatesとはどのようなものなのかを紹介するとともに、
どのような課題を解決するのか例を踏まえて紹介します。

概要
Property Delegatesとは
実装例の紹介(State、User Defaults、Validation)
Swiftプログラミングにおける継承、抽象化、関心の分離などのこれまでの考え方などを踏まえたProperty Delegatesの役割の考察
3
採択 LT(5分)

5分でわかる!Xcode 11から使えるXCFrameworks

Sho Ikeda(いけしょー) ikesyo
WWDC 19で発表されたXcode 11の新機能の中でも喜ばしいものの1つは、XCFrameworksという、フレームワークの新しいバイナリ配布フォーマットです。これまでフレームワークの配布には".framework"という拡張子のフォーマット(バンドル)が使われていました。しかし".framework"のバイナリの配布では、1つのバンドルでシミューレーターとデバイス両方で使用できるようにするためのビルド手順の複雑さ、iOS用とmacOS用、tvOS用など対応プラットフォーム毎にバンドルを分離する必要(この場合は3つ)などの問題がありました。

Xcode 11から使える".xcframework"という新しいフォーマットは、まさにこれらの問題を解決しているのですが、どのように解決しているのか、またどうしてXcode 11のタイミングで導入されたのでしょうか?本LTではXCFrameworksの構造や作成方法、そしてこの形式が導入された理由(の推測)に迫っていきます。
8
採択 iOSDCルーキーズLT(5分)

LLDBデバッガで不具合の原因を特定して開発速度を上げよう

クウルス Qoo_Rus
アプリ開発の経験が無く、プログラミングそのものの経験も浅い、そんな初心者の困り事の一つは、不具合の原因を特定するのに多くの時間を費やしてしまうこと。
原因特定スピードを上げるにはLLDBデバッガが有効です。
Xcode10.2から登場したvコマンドについて
- vコマンドでわかること
- vコマンドの操作手順
- poコマンドとの違い
をお話します。
LLDBデバッガを活用した経験があまりない方や、poコマンドを普段使っていてvコマンドを使ったことがない方向けです。
1
採択 LT(5分)

先生のことをお母さんって呼んでも大丈夫。そうObjecive-Cならね

bannzai _bannzai_
日本ではほぼすべての人が義務教育期間を経て立派な大人になっていくと思います。そして、そんな意識が曖昧な期間の人々は大きな過ちを犯しがちです。そう。例えば「先生」に対して「お母さん」と呼んでしまう問題は鉄板の過ちと言えるでしょう。人間は過ちを犯すものです。脳内では「先生」と「お母さん」は区別はついているはずなのに呼び間違えてしまう事象が発生してしまいます。脳内に常にバグがあります。そんな我々が書くプログラムにおいてもそのようなバグが混在しないと言えるでしょうか?いいえ。発生しないなんて言い切れないです。特にSwiftのような実行前に厳格にチェックが入るシステムなら事故は減らすことができると思います。しかし、私達が普段扱っているのはSwiftで記述できますが、未だに@objcなどの存在がちらほら見えるUIKitやFoundationを支えているであろう Objective-C の存在を感じざるを得ません。Objective-Cでは非常に動的にメソッドを呼び出すことが可能です。これはつまり「先生」を「お母さん」と呼び間違える可能性が出てくるということです。Objective-Cの世界では「先生」に対して「お母さん」と呼び間違えたら自分が羞恥心でクラッシュします。

このトークではObjective-Cにおいて、「先生」を「お母さん」と呼び間違えてしまった場合の復帰策についてお話していきます。
3
採択 iOSDCルーキーズLT(5分)

完全に同じ開発環境を素早く用意できる(もしくはできない)技術

Hiroyuki Aoki Solti
開発環境の構築って面倒ですよね。
Xcodeのインストールは時間がかかるし、その他いろんなツールに関して手順書を用意しておいても、ちょっと違うバージョンがうっかり入っちゃうとかよくあります。

このLTでは、毎月数十台のMacをセットアップし続けてきた経験から、Appleの提供する標準機能だけで全く同じ構成のmacOS環境を準備するために行ってきたいくつかの方法と、それぞれの特徴についてお話しします。
また、Sierra -> High Sierra -> Mojaveと毎年バージョンアップされるに伴って利用できる技術が変わっており、現在進行形で困っていることについても話します。
2
採択 LT(5分)

iPhone 設定をアプリから操作してらくらく環境構築

Kuniwak orga_chem
iOS の設定は Configuration Profile という形式のファイルをインストールすると変更できることは、意外と知られていません。
もし、これをアプリを通してインストールできれば、iOS 11 未満でも Wi-Fi を QR コードで繋げるなど様々な可能性が広がります。

この LT では、Configuration Profile によってできること、そしてアプリから Configuration Profile をインストールする方法を解説し、皆さんの iPhone 環境構築体験を豊かにするための知識を披露いたします。
6
採択 iOSDCルーキーズLT(5分)

1ヶ月半でプッシュ通知許諾率を17%から40%にあげた話

akutsu sky_83325
マーケチームから来る「あくつ〜。プッシュ通知許諾率あげてくれないとリテンション施策打てないよ〜」という声。

平均30%と言われる承諾率だが、何故か僕たちのアプリは17%・・。

プッシュ通知承諾パネルを表示するタイミングは、熟考された上に以下の2つのタイミング。
- お気に入りにアイテムを追加した時(新しくお気に入り商品が投稿された事を通知するため)
- 商品の購入が完了し、取引が始まった時(取引のリマインドのための通知を送りたいため)

何が悪いのかさっぱりでしたが、意外なことで解決しました。
ある1つのことをしただけで、プッシュ通知許諾率が全体平均17%から40%にあがったワケとは!?
拘りの強いiOSエンジニア(デザイナー)が陥りやすい罠についてサクッと話します。
1
採択 LT(5分)

Amazon Pinpoint でユーザーに合わせたプッシュ通知を実現する

kiwi koga_wiwi
プッシュ通知の配信といえば Firebase を思い浮かべる方が多いと思いますが、
AWS でも Pinpoint というサービスを使うことで、プッシュ通知のセグメント送信をすることができます。
さらに、 AWS Pinpoint では AWS Lambda を使ってセグメントをカスタマイズすることができるため、
ほかの AWS リソースのユーザー情報をもとに通知内容をユーザーごとに変更することまでできます。
また、ユーザーに複数のチャネルを割り当てることができるため、プッシュメールとプッシュ通知を使い分ける、といったことも可能です。

本 LT では、 Pinpoint を用いたプッシュ通知の配信から、こうしたユーザーごとのカスタマイズまでを扱います。
特に普段のアプリのバックエンドで AWS を活用しており、通知配信も AWS 内で行いたい方の参考になれば幸いです。
採択 iOSDCルーキーズLT(5分)

Core MLで実現する爆速のARサイズ計測

Kohei Arai kokoheia
iOS12から搭載されたAR Measureアプリは、ARKitの精度を証明するとともに、現実のものを何でもスマホで測ることができるという世界を実現しました。しかし、AR Measureの操作には慣れが必要だったり、自分でスマホを持った状態で動き回らなくてはいけないという課題が存在します。そんな課題をCore ML、すなわち「機械学習」を使って解決することができます。例えばフリマアプリなどで服を売りたい時、服の着丈、身幅、肩幅、袖丈などを載せたいと思う人がいると思います。このようにあらかじめ測定したい場所・指標が決まっている場合、機械学習でそれらを測るために必要な点群の位置を推定することができます。点群の位置さえ推定できれば、ユーザーがわざわざARで測らなくても、平面認識と深度推定によって自動的に現実物のサイズを得ることができます。つまり、機械学習で「どこを測るか」を決めて、ARで「それが現実世界でどのくらいの長さなのか」を決めます。今回はTシャツを例に、その着丈、身幅、肩幅、袖丈をARKitとCore MLを使って一瞬でサイズ測定するプロトタイプをお見せします。今回のプロトタイプを応用すれば、インテリアや人の身長など、様々なものを一瞬で測ることができるようになります。この発表では、機械学習によっていかにARのサイズ計測が簡単かつ速くなるか、というお話と、それによって実現できた精度とその改善方法、その過程で使用したモデルなど技術的な知見を共有します!
1
採択 LT(5分)

SOLID原則を生活に適用する

takasek takasek
SOLID原則は、オブジェクト指向プログラミングにおける基本的な5つの原則です。

S - 単一責任の原則 (Single Responsibility Principle)
O - 開放/閉鎖原則 (Open/Closed Principle)
L - リスコフの置換原則 (Liskov Substitution Principle)
I - インタフェース分離の原則 (Interface Segregation Principle)
D - 依存関係逆転の原則 (Dependency Inversion Principle)

コーディングにおいて、言語化できない不吉なにおい(Code Smell)を感じたときには、これらの原則に照らし合わせることで設計の間違いを言語化し、修正の手がかりを掴むことができます。

SOLID原則はもちろん、ソフトウェア設計のための原則です。
しかしオブジェクト指向は「複雑な問題領域を分割統治する」コンセプトであり一般性を見いだせます。原則が転用できるのは、コードの中のみではないはず。
このLTでは、コーディングにまつわらない日常生活のものごとをいくつか例に挙げ、SOLID原則の視点で解釈してみます。
ドキュメンテーションから部屋掃除に至るまで、SOLID原則を適用すると、どのような「におい」をあぶり出し、改善することができるのでしょうか?
そうやってSOLID原則に慣れ親しんでみれば、コーディングでのSOLID原則の熟達にも役立つことでしょう。

30分枠でも同タイトルのプロポーザルを提出していますが、LT枠としては「こんなふうに共通の課題を見いだせる!」というアハ体験の楽しさを重視したいと思います。
6
採択 iOSDCルーキーズLT(5分)

Swiftでつくるファミコンエミュレータのススメ

thara zetta1985
低レイヤーを触ってみたいと思いつつも今まで手が出すことができていなかった私が、今現在Swiftでファミコンエミュレータを作っています(現在進行形)
このトークでは、Swiftを使ってファミコンエミュレータを開発することの楽しさをお伝えします。
ファミコンエミュレータ開発の第一歩がなかなか踏み出せない方の背中を押すことができたら幸いです。
4
採択 iOSDCルーキーズLT(5分)

GitLabRunnerで始める自前CI環境

i.terasaka ikichiemon
みなさんCI環境はどうされていますか?

最近ではBitriseを使う方が多くなってきていますね!

弊社ではコード管理をGitLabで行なっているため、
GitLabRunnerをiMacで動かしてCI環境を構築しています。

・CIサービス使いたいけどお金かかるから...
・弊社はGitLabじゃないけどBamboo使ってRunner回してる!

などといった方に参考となるお話をさせていただきたいです。

・GitLabRunnerでどんな風にCIを回しているのか
 ・マージリクエストを出したらテストが回る
 ・ボタンポチで環境ごとにDeployGate配信
 ・Releaseタスクではappstoreconnectへのアップロードを自動化
 など
・どういう設定しているか、.gitlab-ci.ymlを一部公開
・自前CIのつらみ
2
採択 iOSDCルーキーズLT(5分)

個人開発のアプリが輝くために

ahiru_starrr ahiru_starrr
AppStoreを見渡すと、数え切れないほどの膨大な数のアプリが存在する。
しかしながら私たちがよく使うアプリというのはその中のほんの一部に限らている。例えば、Twitter、Instagramなど、ほとんどが大企業の開発したものだ。

それでは個人デベロッパーが開発したアプリが陽の光を浴びることはないのだろうか?

このセッションでは私が個人開発したアプリが100万DLされるまでの取り組みや改善などを中心に、プロモーションにお金を費やすことのできない個人開発のアプリをより多くの人に利用してもらうための手法やアイディアについてお伝えします。
あなたが作ったアプリをもっと多くの人たちに利用してもらい開発へのモチベーションを高めていきましょう!

- AppStore内の検索ロジック
- 今日のAppの仕組み
- 効果的なASO
- ランキングロジックの考察
- WWDC - App Store Labで得た知見
1
採択 iOSDCルーキーズLT(5分)

iOSエンジニアでもできるIoTガジェット作成、基板発注もう何も怖くない

Jumpei Ono takoikatakotako
iOSエンジニアなら一度は憧れるスマホ連携IoTガジェット。
iOSとの連携が簡単なマイコンや、簡単に基板を設計、発注する方法をご紹介します。
自分だけのオリジナルIoTガジェットを作る楽しみが広がると嬉しいです!
4
採択 iOSDCルーキーズLT(5分)

AR Quick Lookを家具ECサイトに導入した話

NESS nesskazu
iOS12からAR Quick Look機能が搭載されました。
AR Quick LookはUSDZファイルを設置するだけでSafari等のアプリで3DモデルをAR表示することが出来ます。
ハードウェアやARKitの進化によりARの体験も確実に向上しています。
USDZファイルをサイトに設置することでその恩恵を受けつつユーザー体験やコンバージョンを向上させましょう。
このトークでは、家具ECサイトに導入した事例を元にAR Quick Lookの概要、3Dモデリング、Tips、効果等を紹介します。
1
  • 1
  • 2 (current)
  • 3
  • 4
iosdc-japan-2018 sponsors iosdc-japan-2018 potential-sponsors 開催後請求
ブースWL 要支払確認 要モノクロロゴ
仮採択 採択しない Rookie
仮採択 採択済 保留 情熱加点 採択しない