採択
2018/08/30 20:00〜
Track A
レギュラートーク(15分)

ツールとして利用するUIテスト

fromkk Kazuya Ueoka

Xcode 9よりXCTestにスクリーンショット撮影機能が実装されました。XCTestはテストコードから地域や言語を指定する事が可能で、xcodebuildで複数のシミュレーターでテストが実行可能なので、様々な画面サイズと条件のスクリーンを集める事が出来るのです。デザイン崩れ等はUIテストでも判別が難しい物の一つですが、半自動的にデザイン崩れを解消する事が可能になったので発表したいと思います。

レギュラートーク(15分)

機械学習したいけどCreateMLじゃ物足りない?TuriCreateがあるよ

fromkk Kazuya Ueoka

macOS MojaveとXcode 10の組み合わせからPlaygroundで簡単にCoreMLのモデルが作成出来るようになりました。ただ、現在のところ画像分類、文章の分類、表形式データの推定のみです。特に機械学習で画像を取り扱う場合、物体認識機能や画像変換機能は魅力的な機能かと思います。機械学習の知識が全く無い人が、TuriCreateを試してみてこれらの機能が如何に簡単に実装出来るか紹介したいと思います。

レギュラートーク(15分)

事業の制約と技術課題の中で技術的チャレンジをどうしてきたか

yasuda0321 保田速人

長い間プロダクトを運用するとコードには旧時代のプラクティス、意図のわからない仕様、統一されていないアーキテクチャなどの様々な課題が積み上がっていきます。

リリースしてから8年が経過し巨大になったじゃらんアプリも例外ではなく、生産性をあげるべく様々な取り組みを行ってきました。

このセッションでは事業の制約と技術的な課題のなかでどのようなことを行ってきた(もしくは行っている)かをお話したいと思います。

レギュラートーク(15分)

Practical transitions for iOS

gaussbeam hanyu

ユーザ体験向上のためにトランジションやアニメーションが果たす役割は大きい.
Human Interface Guidelinesでは,これらの項目は大幅な更新もなく抽象的な記述に留まっている.そのため,デベロッパの裁量に委ねられているのが現状である.
本発表では,Material Designや各種ライブラリでの表現・実装などを参照し,アプリのトランジションをよりリッチにするための実践方法やTipsを紹介する.

採択
2018/08/30 20:00〜
Track B
レギュラートーク(15分)

Playground駆動開発のすすめ

_rockname rockname

ほとんどのiOSエンジニアは、デザイナーさんからデザインを受け取り、その仕様通りに実装すると思います。
が、それでもやはりデザイン調整は入ります。
その度にSwiftの長いコンパイルを待ってUI調整を確認するのは、さぞツライ作業です。

そこで、デザイン調整の工程をPlaygroundでやってしまおうというわけです
...それが「Playground駆動開発」です!

レギュラートーク(15分)

今さら知らないなんて言えない!ARKit入門

yutaabe200 yutaabe200

ARKitが登場してから早くも1年以上が経過しました。今ではAppStoreには数多くのARKit搭載アプリがリリースされています。
さらにWWDC2018ではARKit2が登場し、AppleもARに関してかなり注力していることが伺えます。
今日iOSエンジニアを名乗るのであれば、ARKitを扱えて当然の世代になりつつあります。
本セッションではARKitの基本からどのようなことが実現可能かをわかりやすく解説します。

レギュラートーク(15分)

もっともっと細かくリリースをしてユーザーに最速で価値を届けるためのリリースフロー

slightair slightair

僕らの組織では複数のプロジェクトチームがひとつのアプリに機能を追加・修正するという体制で開発を行っており、リリース日程や実装機能の調整など、コミュニケーションにどうしても時間がかかっていました。この問題を解決するためにfastlaneを使ったタスクの自動化だけでなく、機械的なペースに合わせるリリースフローを実現しようとしているので紹介します。(発表する頃にはうまくいってるはず…)

採択
2018/09/01 16:20〜
Track C
レギュラートーク(15分)

動作確認のための社内アプリ配信サービスを新たに作った話

slightair slightair

アプリの開発中にビルドしたアプリをCrashlyticsBetaやDeployGateなどにアップロードし、手元で動作確認できるようにしているチームは多いと思います。僕たちもそういったサービスを使ってきましたが、様々な課題が出てきたため自分たちの使い方にあったシステムを新しく作りました。どういった課題がありどういうツールを用意したのか、そしてどうリリースフローが改善されたか話します。

レギュラートーク(15分)

時は満ちた...今こそAVSpeechSynthesizerに日の目を!

ushisantoasobu ushisantoasobu

iOS7より登場した、テキストの音声読み上げAPIであるAVSpeechSynthesizer。スマートスピーカの登場をはじめとして「耳で情報を得る」機会は今後も増えていくのではないでしょうか。
iOS7登場時にリリース・運用してきたTwitter読み上げアプリの経験を通して、AVSpeechSynthesizerを用いたアプリの開発のポイントを発表できればと思います。

レギュラートーク(15分)

退屈なことはApp Store Connect APIにやらせよう

giginet ぎぎにゃん

ついに発表されたApp Store Connect API。これを使えば何ができるのでしょうか?
公開されている情報からいくつかの業務改善のアイディアをお話しします。
また、実際にApp Store Connect APIクライアントを実装してみて、Swiftで簡単なタスクを記述する方法をお伝えします。

このトークの内容はトーク時にApp Store Connect APIが公開されているかによって変わります。

レギュラートーク(15分)

「絶望から出発しよう」とはならないために

ushisantoasobu ushisantoasobu

アプリを本格的にグロースしていこうとしたときに「最初に仕込んでおくべきだった...!!」みたいなものが結構あったりすると思います。わかりやすい例をあげると「強制アップデート」なんかがそれに当たると思います。こういった「最初から仕込んでおくべきだった」ものを、自身のこれまでの開発経験からピックアップして整理して発表できればと思います。

レギュラートーク(15分)

詳解Fastfile

giginet ぎぎにゃん

プロジェクトが大規模化していくと、さまざまな業務を自動化したくなってきます。同時にロジックが増え、特定の人しかメンテできなくなったFastfileにお悩みの方も多いでしょう。

このトークでは、実際の活用事例を交えながら、大規模プロジェクトにおける効果的なFastfileの書き方、プロジェクトの雑務自動化についてをお話しします。
そのほか、fastlaneコミッターによる明日から使える実践的なtipsも数多くお伝えします。

レギュラートーク(15分)

プロトコルを使って複数サービスを跨いだmusic playerを実装する

kumabook kumabook

iOSでは曲を再生する方法としてAVAudioPlayerやMediaPlayerなどがあります。しかし、それぞれのplayerごとに再生キューやライフサイクルを持っており、player間を跨いで連続再生をするのは直感的には実装できません。今回は上記2つ加えてyoutube iframe player・SpotifyPlayerのplayer間を跨いで連続再生できるmusic playerをprotocolを利用して実装した話をします。

レギュラートーク(15分)

Swinjectによるいい感じなDIのやり方

_rockname rockname

DI機運が高まる昨今、AndroidではDagger2を採用する企業は多いかと思いますが、iOS開発においてみなさんはどのように依存性を注入していますか?
StoryBoardを採用するチームでは、VC初期化時に変数を渡せずに苦労して妥協することも多いと思います。
そこで今回のトークでは、DIライブラリ「Swinject」によるいい感じなDIのやり方をご紹介します。

採択
2018/08/31 17:10〜
Track B
レギュラートーク(15分)

差分計算アルゴリズムを用いた高速なUITableView描画

fumito_ito fumito-ito

UITableViewをいかに高速に描画、更新するかはiOSアプリケーションの実装において頻繁に遭遇する問題です。

本セッションでは単純な reloadData を用いた場合と差分計算アルゴリズムを用いた場合で実際にどの程度の差が生じるのか検証した結果を提示します。
また、複数の差分計算アルゴリズムとその実装を比較することで、それぞれの実装が適しているケースを提示します。

レギュラートーク(15分)

非同期UI描画による高速なアプリケーションの実装

fumito_ito fumito-ito

iOSアプリケーションの高速化においてメインスレッドをブロックするUIの描画コストは無視できない問題です。

日経電子版アプリでは非同期なUI描画を実現するTexture(AsyncDisplayKit)を導入し、大量のテーブルをスムーズに描画しています。
本セッションではTextureの検討から具体的な導入ステップ、導入にあたって遭遇したトラブルと対応方法について紹介します。

レギュラートーク(15分)

クロスプラットフォームアプリ開発ノススメ

takahia 日浅 貴啓

昨年Google iOでFlutterが発表され、KotlinConfではKotlin NativeでのiOS開発が発表されたりと、再びクロスプラットフォームアプリ開発が脚光を浴びようとしています。本セッションは、Fultter、Kotlin Nativeの他、従来のReactNativeやXamarinでの開発も踏まえて、今後私たちがどのような方向性で進むべきか考察していきます。

採択
2018/09/02 15:10〜
Track A
レギュラートーク(15分)

iOSでグラフを描くために必要な知識について

kurotyann9696 須藤将史

グラフを簡単に表示するライブラリはたくさんあります。しかし、表示したいグラフのデザインに合ったライブラリがなかったり、デザインを柔軟に変更したい理由から、グラフの表示を自作する方も多いのではないでしょうか。最近はフィンテックやライフログのサービスが注目され、グラフを表示するアプリが増えたように感じます。今回のトークでは、有名なライブラリの実装を参考にしながら、グラフの描画方法の紹介と、実務でどのように活用したのかを話します。

レギュラートーク(15分)

iOSのUIテストの難しさについて考える

tarappo 平田敏之

iOSのプロジェクトで、UIテストを利用しようとしてうまくいかなかったケースはあると思います。
また、そもそも手を出すことすらためらっていることもあるかと思います。

本トークでは、世に公開されているような成功事例の話はしません。
なぜ、難しいのかを「導入時」「実装時」「運用時」とそれぞれのフェーズについて話します。

本トークにより、実際にUIテストを利用するきっかけになればと思います。

レギュラートーク(15分)

そこらへんにいる小学2年生は Swift Playgrounds で楽しくプログラミングを学習できるのか!?

chino_tweet ちの

2017年度、千葉県にある公立小学校の放課後教室で毎週1回、プログラミング教室を実施しました。
プログラミング教育に特別敏感な家庭や才能がある子を対象にしたのではなく、放課後スクールにいるごく普通の子たちに29回実施したレッスンの中で、Swift Playgrounds にチャレンジした結果や、つまづきどころを紹介します。