iOSDC Japan 2019 プロポーザル一覧

LT(5分)

UIKeyCommandを用いた新たなデバッグ手法

フンジン fufunzin
iOSアプリ開発に行うにあたり、どうしても避けて通れないのがSimulatorとの付き合いですね。
普段Slackやブラウザなどで当たり前のように使用しているショートカットがいざデバッグ業務になるとなかなかショートカットを使えずにUIButtonなどをポチポチとしている方も多いかと思います。

そこで今回アプリのデバッグをするにあたってUIKeyCommandを用いた新たなデバッグ手法について紹介します。
3
LT(5分)

拝啓、新潟初のモバイルカンファレンスの主催をすることになりました。

yutaabe200 yutaabe200
私がiOSコミュニティに本格的に参加するようになったのは去年の「iOSDC 2018」がはじまりでした。
そこでいろいろな方に出会い、多くの知見・情報を教えていただきました。
そして、それを雪国に持ち帰った結果、新潟のアプリ開発会社3社主催・協賛で新潟初のモバイルカンファレンスを開催する流れになぜか(?)なり、その主催を行っている真っ最中なので、それまでの経緯と開催に向けた意気込みと、ほんの少しだけ紹介をさせてください。
1
レギュラートーク(30分)

Swiftクリーンコードアドベンチャー ~日々の苦悩を乗り越え、確かな選択をするために~

shiz stzn3
Swiftは多くのプログラミング言語の良い所を採用しており
多種多様な方法でコードを書くことが可能であるため
同じ問題に対しても人によってコードの書き方は大きく異なります。

そうした状況の中で

「これは正しい書き方なのだろうか?」
「もっと上手い書き方があるのではないだろうか?」
「いったい何が良いコードなのか?」

と悩むことは多いのではないでしょうか。

私は毎日悩み続けています。

そんな中
これが正解というものはありませんが
数あるコードの中でも
多くの方から良いコードと呼ばれている
いわゆる「クリーンコード」は存在します。

今回は
私が日々苦悩する中で出会ってきたコードを題材に

どのような状況で、どのような書き方がされ、なぜそう書かれたのか

を見ていき

「クリーンコード」とはどういうものなのか?
なぜ「クリーンコード」は必要なのか?
「クリーンコード」を書くためにはどうすればよいのか?

などについて
みなさまと一緒に
コードの世界を探検する中で発見していきたいと思います。

今回の発表を通して

「こういうときはこういう理由でこうすれば良い」

といった「確かな選択」ができる回数が増え
日々の苦悩を乗り越えるための一助になりましたら幸いです。
3
LT(5分)

圧倒的ワンライナー

bannzai _bannzai_
Swiftの表現力を活かした圧倒的ワンライナーを紹介します。
1
レギュラートーク(30分)

コンポーネント指向を取り入れ、UI開発を柔軟に。 そしてiOS版のStorybookを開発するまで

muukii muukii_app
Webアプリの開発ではReactやVueなどコンポーネント指向を取り入れた開発の仕方が存在しています。
この考え方をiOS開発に取り入れたときに、開発の考え方がどのように変わり、どのようなメリット(デメリットも)が得られるか、をメインにお話します。

ここで少し触れておくと、
コンポーネント指向を取り入れることで、UIコンポーネントの再利用、持ち運び、カスタマイズが行いやすくなるメリットがあります。
また、Webアプリ開発の技術としてStorybookというUIコンポーネントを管理・閲覧するシステムがあり、
このアイデアをiOSアプリ開発でも活用することを考え、iOS版のStorybookを開発することも可能になりました。
その具体的な方法や使い方の紹介にも触れていきます。
10
技術パッション共有トーク(60分)

ファミコンエミュレータづくりの魅力

マスクドPHPer MaskedPHPer
「ファミコンエミュレータを作る」と聞いて何を思い浮かべますか?
多くの方は何をどうしたら良いのか全く想像が付かないと思いますし、私もそうでした。

2016年2月にPHPで書かれたゲームボーイエミュレータ php-terminal-gameboy-emulator が話題になりました。このとき、PHPならばということでコードを読んでみました。エミュレータのコードを読んだのは初めての経験だったのですが、大きな衝撃を受けました。それ以前からCPUやメモリ、この頃のゲーム機に共通する仕様のことは知っていたのですが、php-terminal-gameboy-emulator のコードに見たものはその仕様がそのままPHPのコードとして表現されたものだったのです!

そしてその2年後、あるカンファレンスでファミコンエミュレータに関するトークを聞いた時に、2度目の衝撃が私を襲いました。そこで紹介されたコードはその場で初めて見るにもかかわらず、断片を見るだけで内容が理解できたのです。

このトークでは2度目の衝撃を受けて私が書いたファミコンエミュレータを題材に、エミュレータのコードの特長や設計、そしてその魅力をお伝えします。
エミュレータは決して難しいものではなく新しい言語の学習や設計の練習にちょうどよいテーマでもあります。このトークを聞けばきっと一度エミュレータを書いてみたくなるでしょう。
技術パッション共有トーク(60分)

ファミコンの画面描画を知る

マスクドPHPer MaskedPHPer
ファミコンの画面は8x8ピクセルで定義されたキャラクタを敷き詰めた画像(BG)の上にやはり8x8ピクセルで定義されたキャラクタ(スプライト)を重ねて描画されています。その名の通り多くの場合BGでゲームの背景を、スプライトでゲームの主人公や敵キャラを表現することになります。

この「BGとスプライトでゲーム画面を描画する」という設計はファミコンに限らず、PCエンジン, ゲームボーイ, メガドライブ等々、PlayStationより前のゲーム機に共通する設計でした。
すでに発売されているゲーム機より高い性能、より良い表現を求められるであろうゲーム機の設計においてなぜ画面描画に関する設計は共通になっているのでしょうか。それには当時の技術的な制約、出力先である家庭用テレビの仕様が影響していました。

このトークでは私が書いたファミコンエミュレータのソースコードを題材に、ファミコンの画面描画の仕組みや、画面描画をエミュレータでどの様に設計・実装しているのかを解説します。
そして、このトークを通してエミュレータのコードが「得体の知れない難しいもの」ではなく読んで楽しく、書いてみたくなるものであることをお伝えします!
iOSDCルーキーズLT(5分)

あなたの知らないプロジェクトテンプレートの世界

usayuki usayukisan
普段何気なく使用しているプロジェクトテンプレートの中がどうなっているのか知っていますか?
このトークではSingle View Appを例にテンプレートの中身について解説します
技術パッション共有トーク(60分)

Implement JVM by PHP

めもり〜 m3m0r7
みなさんは、 JVM (Java Virtual Machine) をご存知でしょうか。ご存知のかたもいれば、いらっしゃらない方もいらっしゃると思います。
JVM は java ファイルをコンパイルしたあとに生成される中間コードを実行するための仮想マシンのことを言います。
そして JVM は JVM Spec (Java Virtual Machine Specification) と呼ばれる Oracle がウェブ上に一般公開しているドキュメントに則って実装されています。
つまり、どのような言語がベースでも開発を行うことは可能であり、それが C でも Java でも、なんなら PHP でも実装可能です。
ということで普段 PHP を良く好んで使う私が、 PHP で JVM を実装したトークをします。
なぜ PHP? と思ったそこのあなた!世間一般ではウェブ言語と認知されている PHP ですが、実はウェブだけに限らず、様々なアプローチで PHP は有効活用できるのです。
なんということでしょうか。 30 億のデバイスで PHP が走る日も近いというワケです。
それではお楽しみに。
1
レギュラートーク(30分)

本当は怖くないFlutterを使ったクロスプラットフォーム開発

shogo.yamada yshogo87
Google製クロスプラットフォームで開発できるFlutter。

Flutterの基本的な仕組みから、実装方法、
「クロスプラットフォームだから安定してないのでないか」や「OSに依存した処理があると実装できなかったりするのではないか」などクロスプラットフォームを採用することメリット、デメリットなどをお話します。

実際にFlutter製アプリを3本AppStoreにリリースしており、その際に起きた事件や、Flutterを採用してよかった点なども実体験からお話します。
1
レギュラートーク(30分)

Clean ArchitectureとMinimal Cake Patternで送るDI

417.72KI 417_72ki
Minimal Cake PatternはDI(Dependency Injection)の手法の1つで、DIコンテナなどのフレームワークに依存しないDIが実現できます。
このセッションでは、このMinimal Cake PatternとClean Architectureを組み合わせて実際に開発した際に得られた知見についてお話します。
1
技術パッション共有トーク(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
レギュラートーク(30分)

14回の Reject と 2回の国際電話から学ぶ汗と涙の iOS Design

akkey AkkeyLab
朝7時、 +1 から始まる見覚えのない電話番号からの着信で目を覚ました。寝ぼけながらも iPhoneXS の画面をよく見ると San Jose と表示されている。これは、某アプリの Reject 回数が10回を超え、当初のリリース予定日から1ヶ月経過したとある土曜日のことです。

iOSDC ではこの貴重な体験を包み隠さず全てお話します。数々の都市伝説と噂を持つ Apple の App Review ですが、14回 Reject されたとしても決して悪者扱いしてはいけません。 Apple の Review は、私達のプロダクトの質をグッと高めるきっかけになります(きっと)。
このトークでは、プロダクト品質を高めることにつながる「きっかけ」を見つけていただけたらと思います。

※ トークに機密事項は含まれませんのでご安心ください
3
レギュラートーク(60分)

コードを、デザインする

星野恵瑠 lovee
ジョブズは言った、「デザインは見た目やオーラではなく、どう動くか、です」と。

我々は長い間、様々な設計パターンやアーキテクチャーの話をしてきたが、しかしそう言った具体的な話はあくまで目的を実現するための「メソッド」であって「アプローチ」ではない。言い換えればプログラミングが続く限り、そう言ったアーキテクチャーは無限に新しいものが出てくるだろう。

しかしそんな激しい「変化」の中でも「不変」なものがある。それは「アプローチ」である。どんなアーキテクチャーでも最終的には「こうすれば読みやすい」「こうすればメンテしやすい」と言う命名や責務分割などの基本ルールに回帰できる。

このトークでは、初心者・中級者エンジニア向けに、「こうすれば機能を実現できる」から「こうすれば機能を保守できる」への道しるべになることを祈る。
3
LT(5分)

Flamelink×FirebaseでAppStoreのTodayライクの画面を作る

Matarai Kaoru mcz9mm
AppStoreにあるTodayはみなさんご存知ですよね。iOSデベロッパーの方なら一度は載ってみたいコンテンツです。
いざこのような画面だったり配信システムを1から作ろうとするとちょっと腰が重い印象が…
このトークではTodayのような画面の実装と配信システムを、より簡単に実装する上での知見をお話します。
1
技術パッション共有トーク(60分)

個人アプリを収益化する為のプロセスと「モバイルエンジニア」の引退

yutaabe200 yutaabe200
このトークはみなさんに「個人でもアプリを持つこと」を魅力的に感じてもらうこと、「収益化して良いアプリを長く持ち続けてもらうこと」、そして「それがモバイルエンジニアには必要だった」と言う私の独自の解釈を少しでも多くの方に伝える事を目的としたトーク内容です。
私は昨年より個人でとあるアプリのiOS/Androidのを開発・運用していました。
せっかく自分でアプリを開発・リリース・運用するのであれば収益化したいと考える方は多いのではないでしょうか?
事実、収益化すればそのアプリに対する愛着が湧きますし、モチベーションが上がるのは私が身をもって実感できたことです。
しかし、収益が上がればモチベーションも上がるという当然のプロセス・仕組みを個人で構築するのは決して簡単なことではありませんでした。
このハードルを越えるためには普段の業務で言う「モバイルエンジニア」という領域または敷居を容赦無く超えていくが必要です。
個人アプリ開発・運用での経験則を基に、開発からリリース、運用までの各タイミングの重要だったポイントと、それがどのように会社組織内での日常業務で影響し始めたか、そして最終的になぜ「モバイルエンジニア」と言う肩書を引退することに繋がるのかを「個人でのエンジニア」と「組織でのエンジニア」をあえて混同させてお話します。
2
レギュラートーク(30分)

個人アプリを収益化する為のプロセス

yutaabe200 yutaabe200
このトークはみなさんに「個人でもアプリを持つこと」を魅力的に感じてもらうこと、そして「収益化して良いアプリを長く持ち続けてもらうこと」を少しでも多くの方に伝える事を目的としたトーク内容です。
私は昨年より個人でとあるアプリのiOS/Androidのを開発・運用していました。
せっかく自分でアプリを開発・リリース・運用するのであれば「少しでもMoneyが欲しい!」と思うのではないでしょうか?
事実、収益化すればそのアプリに対する愛着が湧きますし、モチベーションが上がるのは私が身をもって実感できたことです。
しかし、収益が上がればモチベーションも上がるという当然のプロセス・仕組みを個人で構築するのは決して簡単なことではありませんでした。
このハードルを越えるためには普段の業務で言う「モバイルエンジニア」という領域または敷居を容赦無く超えていくが必要です。
ユーザーが潜在的に望んでいる機能の発掘・まさかのビジネスチャンス「令和ショック」・収益化するタイミングや対象機能など経験則を基に、開発からリリース、運用までの各タイミングの重要だったポイントを交えて最終的に私が「どう言う人間」になったか、そしてなぜかそれが業務に影響しはじめる現象をお話しします。
2
  • 1
  • 2 (current)
iosdc-japan-2018 sponsors iosdc-japan-2018 potential-sponsors 開催後請求
ブースWL
iosdc-japan-2018 sponsors iosdc-japan-2018 potential-sponsors 開催後請求
ブースWL