トーク一覧

iOSDC Japan 2016のトーク募集に応募されたトークの一覧です。

  • 採択 30分 08/19 17:40 Track A

    ユーザーに受け入れられ、問題を起こしづらい大規模リニューアルの進め方

    shoby (@shobyshoby)
    フリマアプリ フリルはここ1年で2度の大規模リニューアルを行いました。
    このトークではフリルでの経験を元に、ユーザーに受け入れられ、問題を起こしづらいリニューアルの進め方をエンジニア目線でお話しします。
    リニューアルでありがちな大きなバグの発生や、星1レビューの嵐をいかにして防ぐか、開発チームの総力戦となる大規模プロジェクトをいかにスムーズに進めるかについてお話しします。
  • 採択 30分 08/19 17:40 Track B

    Swift3 Web Framework SlimaneとServer Side Swift

    Yuki Takei (@noppoMan722)
    Swift3の正式リリース間近ということで、以前にも増してServer Side Swiftへの熱が盛り上がってきいるのではないでしょうか。
    このセッションでは、Swift3 Web Framework 「Slimane」の紹介と、
    Slimaneと周辺ライブラリを使った実践的なwebアプリケーションを構築し、クラウド環境へのデプロイといった一連の作業のデモを行いながら、
    Server Side Swiftを体験していきたいと思います。
    また、時間の許す範囲で、Open-SwiftやServer Side Swiftのこれまでとこれからについても話します。
  • 採択 15分 08/19 18:20 Track B

    AB Tests in Mobile App

    kazunori kikuchi (@kichikuchi)
    ABテストをモバイルアプリに導入し、日々アプリの改善を行っていることについて発表します。

    どのようにABテストを導入しているのか?
    ABテストを導入してどんな成果が得られたか?
    ABテストを運用時にどんな問題が起こったか?

    の3点について発表する予定です。
  • 採択 30分 08/19 18:45 Track A

    フルSwiftでバイクフリマアプリRIDEを作って得た学び

    huin (@huin)
    ファッションフリマアプリFRILを運営する株式会社Fablicは、この春に新サービス「RIDE」をリリースしました。
    RIDEは一部ライブラリを除けばアプリ部分はすべてSwift 2.2で書かれたプロジェクトになっています。またWeb界隈で話題のフレームワークReduxのSwift実装であるReSwiftを用いた新しい設計を採り入れています。
    このRIDEを実例として、本トークではSwift時代における開発手法についてお話します。
    プロジェクトの構成やアプリの設計思想といったコードの話題はもちろん、CIやテストの進め方などチームで効率的に開発を進めるための工夫についてもお話する予定です。
  • 採択 15分 08/19 19:05 Track B

    RubyでXcodeプロジェクトを解析してみよう

    へんてこ (@bilyakudan)
    普通の開発では行うことがないXcodeプロジェクトの解析やipaファイルの解析をRubyを用いて行う方法を発表します。
    DeployGateで提供しているCLIツールのdgコマンドで実際に行っているXcodeプロジェクトの解析手法など、実コードを交えながら紹介します。
    https://github.com/DeployGate/deploygate-cli
  • 採択 30分 08/20 10:20 Track A

    Handling rich text in Swift

    Kishikawa Katsumi (@k_katsumi)
    The handling of rich text is not easy. We may consider a lot of things like fonts, characters, glyphs, emojis, images, ligatures, etc. In this talk, I will show you the basics of laying out text and how to handle complex text layouts in Apple's OS.
  • 採択 15分 08/20 10:20 Track B

    海外のiOSカンファレンスに登壇する - 完全版

    堤 修一 (@shu223)
    ベルリンの「UIKonf」、ロンドンの「iOSCon」、サンフランシスコの「AltConf」と、今年は3つの海外のiOSカンファレンスに登壇する機会に恵まれました。

    とはいえ招待されたわけではなく、CFPに自ら応募して投票・審査の上で採択された結果です。

    本発表では、海外カンファレンスに参加するメリット、CFPの探し方、発表の準備、実際の登壇でうまくいったことや失敗したこと等について話します。
  • 採択 15分 08/20 10:40 Track B

    IPv6 Readyって何だ? NAT64/DNS64の本当の使い方とは?

    藤崎 智宏/岡田 雅之 (@smadako)
    ネットワーク運用者は何年も何年も何年も前からIPv4が最終的に足りなくなって、IPv6の世界が来る準備をしていました。(本当です。)

    日本地域は2011年2月3日にIPv4の新規配布がほぼ終わって、いよいよIPv6環境でアプリを動かさないといけない時期がやってきました。

    多くの方はご存じかと存じますが,この流れの中, Apple は,2016年6月より,
    IPv6 only 環境でのiOSアプリケーションの動作を必須化しました.
    今回は,Apple が公開しているNAT64/DNS64の解説文書 の読み方と,
    NAT64/DNS64の動作,この環境での動くアプリの作り方を可能な範囲で共有します!
  • 採択 30分 08/20 11:00 Track A

    RxSwiftは開発をどう変えたか?

    ishkawa (@_ishkawa)
    RxSwiftの導入には希望もあれば不安もあると思います。実際、RxSwiftを導入したプロジェクトでの開発では、良いことばかりではなく問題にも直面しました。しかし、プロジェクトに参加してから半年以上たった現在では、やはりRxSwiftを導入して良かったと実感しています。

    本トークでは、RxSwiftを利用して実際にどのようなコードを書いてきたのか、実例を交えて紹介します。
  • 採択 15分 08/20 11:40 Track A

    iOS10時代のCollectionView最新つかいこなし

    TachibanaKaoru (@TachibanaKaoru)
    OSのユーザーインターフェースを作る時はさけて通れないCollectionView。
    TableViewより柔軟なレイアウトがくめる分、深く考えずに実装をすすめてしまうと、コードが煩雑になったり、パフォーマンスが悪くなったり、予想通りの効果をだすことができないことも……。
    ここでは、複数のレイアウトを柔軟に適用する技術、また高いFPSを持ち、メンテナンス性の高いCollectionView/TableViewを作るための秘策をお教えします。
  • 採択 15分 08/20 11:40 Track B

    360°写真、動画を用いたVR対応アプリの開発方法

    Yukinaga Azuma (@yuky_az)
    iOSにおける360°写真、動画を用いたバーチャルリアリティー(VR)対応アプリの開発方法を解説いたします。内容は主に以下の通りです。
    ・VRの原理の解説
    ・SceneKitの活用
    ・二眼ヘッドマウントディスプレイ対応方法
    ・iPhoneの画面におけるVRコンテンツの効果的な見せ方
    ・VR用の画像変換に必要な数式
    会場にはヘッドマウントディスプレイを持ち込む予定ですので、興味のある方は是非試してみてくださいね。
  • 採択 30分 08/20 13:00 Track A

    Reactive State Machine

    稲見 泰宏 (@inamiy)
    ここ1, 2年のSwiftの登場とFunctional Reactive Programming (FRP)の普及によって、iOSアプリ開発の現場では劇的なパラダイムシフトが起きています。しかし一方で、副作用を伴うアプリの状態管理に苦労する点が未だ多くあり、バグの温床となっています。このプレゼンでは、状態管理の基礎理論であるオートマトン(ステートマシン)を基に、Reduxなどのフレームワークとの対比も交えながら、FRPでの効率的な設計手法について探ります。
  • 採択 15分 08/20 13:35 Track A

    ドッグフーディングしやすい環境を整える

    Mao Nishi (@mao_nishi)
    自分たちで作ったプロダクトを実際に自分たちで利用することで改善していくことをドッグフーディングと呼びます。ドッグフーディングはより良いアプリを作るための非常に重要なアクションですが、社内であってもプロトタイプ版のアプリをただ配るだけでは利用してもらえません。社員といえどプロトタイプ版のアプリのフィードバック作業は面倒なものなのです。本トークではフィードバックの面倒の壁を取り除き、より多くのフィードバックを集めることでアプリの改善を突き進める方法をお話します。
  • 採択 15分 08/20 13:35 Track B

    「まりも」とiOSの6年間

    Kosuke Ogawa (@koogawa)
    iOS 3時代に「まりも」というアプリの開発を始めてから、そろそろ6年が経ちます。やることは水を換えるだけ、という非常にシンプルなアプリですが、実は CoreMotion や輝度センサー、さらには UIKit Dynamics など、様々な技術を使っています。本トークでは「まりも」の進化とともに、iOSの歴史を振り返ります。
  • 採択 15分 08/20 13:55 Track A

    メモリー管理の嬉しいバイキング料理

    Ray Fix (@rayfix)
    Swiftの初心者の中には、自動参照カウントを使えば、メモリー管理は気にしなくても良いと認識している方が多くいます。確かにSwiftは、ごみ収集システムを使うより、予測可能性は高いと言えます。しかし自動参照カウントを使用する際は、メモリー構造を意識する必要があります。ユーザーは、幾つかの方法でメモリー構造の落とし穴を避けることができます。今回のトークでは、メモリーの取り扱い方法について分かりやく説明します。
  • 採択 15分 08/20 13:55 Track B

    iOS I/O 2016 アクセサリといっしょ

    Noritaka Kamiya (@nolili)
    iOSアプリと協調するアクセサリ類は、数多くの製品がリリースされ、一つのカテゴリを築きつつあります。このトークでは、iOSアプリとアクセサリのエコシステムについて、最新の事情を確認しながら、アクセサリと連携するアプリを開発する際に必要となるフレームワークの選定方法や、開発のストラテジ、リリースまでのベストプラクティスなどについてお話しします。
  • 採択 30分 08/20 14:20 Track A

    デザイナーにStoryboardをお任せする技術

    Hiroki Kato (@cockscomb)
    チーム開発では、デザイナーがレイアウト指示書を作ってエンジニアが実装というフローが多く見られます。しかし私のチームではデザイナーがStoryboardを操作します。デザイナーは手元で試行錯誤を繰り返すことができ、マージンの調整もテキストサイズの調整も、ちょちょいのちょい、です。
    これを実現するためには、エンジニアとデザイナーが互いに協力する必要があります。実際に、デザイナーになるべく多くのコントロールを委ねるため、私たちはたくさんのカスタムビューを作りました。必要なのは、少しのやる気とチームの協力です。お互いの専門性を尊重つつ、そこからちょっとだけはみ出してみませんか。
  • 採択 30分 08/20 14:20 Track B

    33歳モバイルエンジニア道

    nakajijapan (@nakajijapan)
    時代がWEBからモバイルの時代に突入する中、@nakajijapanは運あってか
    モバイルエンジニアとして仕事をいただき、その時代をただひたすらと駆け抜けていく日々でした。いつの間にか歳は今年で33歳という社会では中堅という立場になってきました。最近では若者がどんどんモバイルエンジニアとして成長していき、
    自分の立ち位置が危ぶまれるという恐怖心と戦いながら日々仕事をしています。
    本発表では、これまでを振り返り、自分はどうあるべきだったのか・何が良かったのか、モバイルエンジニア・中堅エンジニアとしてこれかどう生き抜いていくのか、皆さまに少しでもお役に立てそうな話をお伝えできればと思います。
  • 採択 15分 08/20 14:55 Track A

    iOSアプリのリモートサポートツール「ミレタ」の作り方 #WebRTC #Swift #PrivatePod

    Yuichiro Masui (@masuidrive)
    B2Bアプリではサポートが大事です。トレタでは24H/365Dのサポートを行っていますが、電話だけでは相手の状況が分からず困難です。そこでアプリの画面をリモートから見ること、相手の画面に手書きする事のできる「ミレタ」を開発し搭載しました。このシステムはCocoaPodsにしてあり導入が数行で行えること、またまだ導入事例の少ないWebRTCを採用しており技術的にも面白い内容になっています。
  • 採択 15分 08/20 14:55 Track B

    Swiftのこれまでの動向のまとめと今後のさらなる発展の期待

    小野 将之 (@_mono)
    Swiftは2014年のWWDCで突如発表されて、同年9月に正式リリースされて以来、バージョンを上げながら着実な進化を続けてきました。
    現時点での最新版は2.2.1で、秋にはバージョン3の大きなリリースが予定されています。
    そんなここまでの動向と、Swift 3に盛り込まれる要素およびさらにその先に向けて議論されている内容などを分かりやすく解説します。
    サーバーサイドの開発への利用も盛り上がりを見せつつあり、そのあたりも触れていきます。
  • 採択 15分 08/20 15:20 Track A

    Swift で JavaScript 始めませんか?

    熊谷 友宏 (@es_kumagai)
    iOS には JavaScriptCore というフレームワークがあります。これを使うと JavaScript コードと Swift コードを相互に連絡しながらプログラムを実行できます。Swift で作った自作クラスをそのまま JavaScript で使用できたり、JavaScript コードを動的生成して実行できたり、可能性は無限大。このトークではそんな JavaScriptCore の基本のところをざっくり紹介します。
  • 採択 15分 08/20 15:20 Track B

    SwiftでのGeoFence実装 - Tipsを添えて

    satoshi0212 (@shmdevelop)
    GeoFence機能の実装方法と、動作テストを繰り返す中で得た知見とTipsを共有します。
    低消費電力、アプリが"Not running"状態からでも起動できる、など強力な利点があるこの機能ですが精度や地点登録個数など制限もあります。
    デモアプリを通じて、CoreLocationのバックグラウンド実行との違いや使用に向いたケースや向かないケースについて説明します。
  • 採択 15分 08/20 15:40 Track A

    Xcode で快適なデバッグライフを追い求める

    Toshihiro Morimoto (@dealforest)
    僕は怠惰な人間です。プログラミングの大半はデバッグに時間を費やすと思っているので、なるべく早く原因に辿りついたり効率のよいデバッグライフを送りたいと常々思っています。
    プリントデバッグもいいのですが Xcode には便利な機能が色々とあります。それらを使うことで簡単に原因を特定できるケースがあります。
    visualize されるのは分かりやすいですよね。
    それらを tips で紹介できたらなと思います。
  • keynoteアプリで簡単プロダクトデザイン

    STUDIO SHIN (@studioshin)
    Macのプレゼンテーションアプリ、Keynoteで簡単手軽にアプリのアイコンや画像リソースを作成する方法を紹介します。Keynoteをデザイン作成ツールとして120%活用して「Keynoteでここまでできるの?!」というテクニックをお見せします。
  • ユニバーサルアプリの理想と現実

    ここ数年Adaptive UIを実現する機能が増えてきており、iPadアプリを作りやすい環境が整っています。しかしiOS7以前からのアプリや独特なUIを持つアプリでは、それらの仕組みに乗り切れず苦労することも多いでしょう。また日々案件が追加される中で両デバイスを対応するには、開発・デザインの双方の工夫が必要です。そこで、リソースが限られた中で工数をかけず、それぞれの特徴が活きるアプリを提供する方法について議論したいと思います。
  • SwiftでGoogle Code Jamに参加してみよう

    Kenichi UENO (@keno42)
    プログラミングスキルを使って素早く正確に問題を解く、競技プログラミングと呼ばれる競技があります。C++やJavaなど使用言語が限定されたものが多いのですが、Google Code JamはSwift含めどのような言語でも参加できます。2016年度の大会にSwiftを使って参戦した経験を基に、その魅力について話します。
  • Instruments入門

    山本洸希 (@keito5656)
    Instrumentsは、iOSアプリケーションのコードを動的にトレースするツールです。 起動中のアプリケーションに接続することでCPUの負荷やメモリの振る舞い、ファイルのアクセス状況に関するデータを収集し、時間軸に沿ってその変化を追跡することでコード中に潜む解決が難しい問題の原因を突き止めることができます。Instrumentsを使って固まらない、モタつかない、落ちないアプリを作りましょう!
  • 複雑なViewの状態管理をMVVMを使うとどうなるか...?(仮)

    田中賢治 (@ktanaka117)
    Empty, Normal, Selected, Filled..., View実装にはいくつかの状態が求められたりする場面があります。これだけならいざ知らず、さらには状態によって要素の表示非表示など様々...。こうなってくるとプロパティの副作用が強くなったり、可読性が低くなったり、FatVCによる弊害が出てきます。流行りのMVVMパターンを用いるとこれがどう解決されるか、見ていきます。
  • エンジニアとデザイナーとがうまく連携して良いアプリを生み出すために

    宇佐見 公輔 (@usamik26)
    ユーザーにハピネスを。そのためにデザインと技術にこだわり、良いアプリを作っていきたい。フェンリルには、多くのエンジニアとデザイナーが在籍して共に仕事をしています。その中で、エンジニアとデザイナーがどうやったらうまくコミュニケーションできるか。そのための工夫について考えていきたいと思います。
  • The Perfect Type

    Ray Fix (@rayfix)
    Swift expresses the world with classes, structs, protocols, enums, tuples and functions. This talk shows how to best leverage these tools to create types that lead to easier to develop, bug-free apps.
  • The Perfect Type

    Ray Fix (@rayfix)
    Swift expresses the world with classes, structs, protocols, enums, tuples and functions. This talk shows how to best leverage these tools to create types that lead to easier to develop, bug-free apps.
  • Swift Memory Management

    Ray Fix (@rayfix)
    Thanks to Swift value types and ARC, you mostly don’t need to worry about memory. Beware! This talk explores when to use strong, weak, unowned(unsafe), strong-weak dancing, capture-lists and more.
  • Swift Memory Management

    Ray Fix (@rayfix)
    Thanks to Swift value types and ARC, you mostly don’t need to worry about memory. Beware! This talk explores when to use strong, weak, and strong-weak dancing.
  • Parse.comは終了してもmBaaSは終わりません!ニフティクラウド mobile backendの次の一手

    ニフティクラウド mobile backend エヴァンジェリスト 中津川篤司 (@niftycloud_mb)
    「Parse.comは大変なものを盗んでいきました。開発者の信頼です」。mBaaSはアプリ開発者の中で使われるようになっていますが、突然Parse.comがサービス終了をアナウンスしました。mBaaS自体の未来を怪しむ声も聞かれます。しかし開発者にとって使いやすいバックエンドサービスはアプリ開発を高速化したり、面倒な運用から解放される重要な存在です。mBaaS自体の仕組みやParse.comと私たちのサービスとの違い、乗り換え時のTipsなどを紹介します。
  • Swiftで作ろうLINE BOT

    Kazuhiro Sakamoto (@kazu0620)
    LinuxでSwiftが動くということは、もちろんLINE BOTだってSwiftで作ることができるということです。このセッションではIBMが提供するOSSフレームワークKituraを用いてLINE BOTを利用する方法を環境構築から順に説明しながら、ありそうでまだ世にあまりないServer Side Swiftのノウハウと、その魅力について語ります。
  • Swift で IoT アプリ

    kakakikikeke (@kakakikikeke)
    Swift2 を使って IoT 向けのアプリを開発してみました、実際にデバイスと絡めたデモもやりたいと思っています
  • AutoLayoutはレイアウトを簡単にするものではない(仮)

    szk-atmosphere (@SzkAtmosphere)
    AutoLayoutという響きからレイアウトを簡単にするものと思われがちですが、ちょっとした制約のミスでWarningだったりエラーが発生してしまいます。
    そんなAutoLayoutに対する制約について、キーボードが立ち上がってコンテンツの可視領域が変化し画面内スクロールが可能になる場面を例に、どのようにして様々なサイズの画面に対応させるかを話していきます。
  • 初心者をゼロから良いエンジニアへ育てるための思考ハック

    私は今までインターン生教育、Swift家庭教師、エンジニア教育ラジオ番組のパーソナリティなどの活動をする中で、エンジニア教育に携わってきました。
    特に、全く知識がない初心者を最短で1人前のエンジニアへ教育することに従事してきました。
    その活動をする中でイケてるエンジニアを育てるためにはどうすれば良いかというテーマについてトークしたいと考えています。
  • あなたたちの中で罪を犯したことのない者が、まず、この広告SDK開発者に石を投げなさい。

    清 貴幸 (@DayBySay)
    iOSエンジニアという職業にはiOSアプリケーション開発をしている人間だけではなく、インターネット広告のサービスを利用するためのSDKを開発している人間も含まれております。
    このセッションでは、モバイル向け広告SDKを開発/運用しているエンジニアの考えていることや、開発する上で大事にしていること、課題に感じていること、開発の方法などを発表します。
  • 東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方

    Yusuke Kuroiwa (@wa_kinchan)
    東急ハンズのPOSレジをiPadアプリでリプレースしました。
    内製化プロジェクトの中で感じた、iOSアプリを業務で利用した時の理想と現実についてお話します。
    業務要件に応えるには、iOSの制約と立ち向かう必要がありました。
    そのどろどろした内容を具体的になまなましく語ります。
  • 大規模アプリの開発運用で分かった、負債を残さずサービスを長生きさせるための設計ガイドライン

    horimislime (@horimislime)
    コードの一貫性や開発効率維持のため、「スタイルガイド」のようなものを導入している開発現場は多いと思います。しかし、大規模なアプリを長く運用していくには更に一歩踏み込んだ「設計に関するガイドライン」も不可欠です。
    ここでは実際に開発現場で直面した問題をもとに、どういったガイドを作っておくと長期の運用を効率化できるかお話しします。
    実例としてMVVMやDDDをベースにしたソースコードの設計ルールや、iOSプラットフォームで開発する際守っておくと良い作法を紹介します。
  • How Cookpad Tests iOS Applications

    松尾 和昭/三木 康暉/Rusin Pawel (@Kazu_cocoa / @giginet / @RusinPaw)
    クックパッドのiOSアプリケーション開発の中で行われるテストに関してお話しします。Unit TestやIntegration Test、GUI Testといったアプリ自体のテストから、SDKに対するテストやサーバとの関係性に注目したテストなど。自動化されたテストや手動テストなども交えながら。XCTest/Appium/EarlGrey/他自社開発のツール群などが関連します。
  • IBM Wearable SDKを使ってジェスチャー認識やってみた

    株式会社ジェーエムエーシステムズ テクニカルアドバイザー 早川輝 (@スライドを公開します)
    IBM Wearable SDK(https://wearables.mybluemix.net)とiOS, SensorTagを使ってジェスチャー認識を試してみたときの話をします。IBM Watson summit 2016(http://ibmevent.jp/watsonsummit2016/)でも展示してみたり。
    また、ジェスチャー認識だとかセンサーと連携することがエンタープライズ分野にどんな影響がありそうか?という考察もお話させていただければと思います。
  • Swiftのお陰で人生が変わった話。

    Masaru Gushiken (@g08m11)
    Railsエンジニアであった僕がSwiftでのiOSアプリをリリースからリリース後にどのような人生に転機が起き、プライベートだけでなく仕事や環境が劇的に変化しました。そのことをダイジェスト版でご説明します。
  • Flux with RxSwift

    Yuji Hato (@dekatotoro)
    Facebookが提唱するFluxアーキテクチャーを、Reactive Programmingの代表的なライブラリRxSwiftを使って実装した場合の実装例、メリット、ディメリット等についてお話します。
  • アプリを再申請せずにリリース済みのアプリからバグを取り除くことができるたった一つの方法

    Shin (@shinproxy)
    アプリをアップデートしたときに致命的なバグを含んでしまった。ユーザーに喜んで欲しくてしたことが逆にユーザーを苦しめてしまった。AppStoreのレビューを更新するたびに増える星1の数、そしてユーザーからの叫び声。大急ぎでバグを修正し、慣れない英語を書き、特急申請のボタンをポチる。申請が通るまで怒涛の勢いで広まるユーザーの悲しみにただただ怯えて待つことしかできない。私はこの経験から一年間、申請ボタンをポチるときに手が震えるようになりました。もっと早くこの方法に出会っていれば私の人生はここまで落ちることはなかったと思います。
    このトークでは皆さまに私のような悲しい経験をしないよう惜しみなく「アプリを再申請せずにリリース済みのアプリからバグを取り除く」方法を話したいと思います。
  • クックパッドiOSアプリにSwiftが入ったら…

    Vincent Isambart (@vincentisambart)
    長年開発が続いているクックパッドiOSアプリですが、ついにSwiftで実装する部分が出てきました!しかし、Swift のコードを導入するにあたっていくつかの問題が出てきてしまいました。nullabilityの問題はもちろんのこと、テストがビルドできなくなったり、Swift製のライブラリを導入したいのでフレームワークを使いたくなったり…ひとつずつたおしていくぞ!
  • iOS Clean Architectureで、中長期・大規模開発で複雑化するプロジェクトにもビクともしない開発を行う話

    Kotaro Kodama (@koutalou)
    度重なる仕様変更や複雑な仕様に対応するためにViewControllerやModelが肥大化し、どんどん複雑化して管理が難しくなる問題に対して、iOS Clean Architectureを使ってどのように解決するか紹介します。流行りのFlux Architectureと比較したり、Money ForwardのiOSアプリで実際に活用した内容についても触れます。
  • アプリ内のスタイルを共通化でデザイナーと仲良くなる話

    yukiasai (@yukiasai417)
    デザイナーとのコミュニケーションはアプリ開発には欠かせない要素です。マネーフォワードではデザイナーとエンジニアの関係性を高め、プロダクト開発に活かし、ひいてはユーザー体験を最大化できるよう様々な取り組みを行っています。この取り組みについてエンジニアサイドが行っているアプリ内スタイル共通化やデザイナーとのコミュニケーションツールについてお話します。
  • アプリ開発会社を創業してからアプリを作り続けてきた話

    Nishioka Takuto (@ntaku)
    フリーランスを経て2012年に創業したアプリ開発会社を上場企業に売却しました。開発者は自分一人だけという環境でどのようにアプリを産み出し運営を続けて来たのか、受託開発はどうだったのか、会社を作ると開発以外にどのような業務が発生するのかなど、アプリ開発会社の経営で起こった出来事などについて話をさせて頂きます。
  • iOSアプリの実践的な国際化

    Yusuke Kita (@kitasuke)
    海外市場でもアプリを使ってもらうには国際化が必要です。しかし、国際化とは単に言語を翻訳すれば良いだけではなく、機能やデザインなども現地の文化に適応させる必要があります。メルカリがアメリカ・日本の市場でどのように国際化に取り組んでいるか、実例を混ぜながら説明します。
  • FirebaseはAndroidだけのものじゃない

    中西 良明 (@chun_ryo)
    Google I/O 2016でFirebaseが拡張されてさまざまな機能を提供するようになりました。実は多くの機能がAndroidだけでなくiOSにも同時に提供されています。iOSエンジニアも積極的に活用していきましょう。
  • 私は Singleton が大好きだ。

    熊谷 友宏 (@es_kumagai)
    唱えれば、海さえも割けそうなほどに意見を別つ魔法の言葉。そんなシングルトンが自分は好きです。それは自分がチーム開発を経験していないのも影響しているかもしれません。今回はシングルトンの『密結合性』や『単体テスト性』に注目し、それが Swift のプロトコルやアクセス制御を視野に入れると印象はどう変わるのか。そんな話を通して Swift におけるシングルトンの在り方を振り返るきっかけにしてもらえたら幸いです。
  • Objective-Cを愛するオールドタイプは,Swiftyなコードの書き方をどうやって学べばよいのか

    sonson (@sonson_twit)
    「Swiftでコードを書いても,Objective-CのコードがSwiftの文法に置き換わっただけのコードになってしまう・・・.」頭を切り替えなければ,単純にSwiftでコード書いても,それは,とてもSwiftyなコードとは言えない代物になってしまいます.2tchを8年間,Objective-Cで作り続けてきたオールドタイプである私が,Swiftyなコードを書くために取り組んできたことを紹介します.
  • Mirrorを使って遊ぼう

    Nishimoto Wataru (@watura)
    SwiftのMirrorは不完全ながら,なかなか楽しく遊べるクラスです.この発表では,Mirrorってなんなのか,どういうことができるのか,
    単独でもかなり便利なEnumをMirrorを使ったProtocolを継承させてよりいっそう便利にした話や,多分Mirrorを使っている最も有名なプロジェクトであるRealmではどういう風に使っているのかを見ていきたいです.
  • AWSの力をiOSアプリに。認証認可で悩まない、AWS Cognitoの使い方

    AWS Cognitoを導入してiOSアプリにもAWSのパワーを取り入れよう!

    AWSのリソースをiOSアプリで活用するために利用する認証認可の仕組みを提供するのがAWS Cognito。このCognitoを使ってAWSリソースを活用する仕組みを紹介します。

    ・iOS AWS SDKの導入
    ・FacebookやGoogleを利用したパブリックログインの使い方
    ・User poolsを利用したアカウント登録やサインアップの使い方
    ・Cognitoで認証認可したiOSアプリの実装例の紹介

    https://www.amazon.co.jp/dp/B01E8EQ264/
  • Open Swift: もうひとつのSwiftの世界

    Shun Takebayashi (@s_take)
    これまでSwiftといえば専らiOS/OSXアプリの開発に利用され、Swiftプログラミング=Foundationを利用したプログラミングというのが一般的でした。しかしSwiftがオープンソース化されたことで様々な用途で利用されるようになると、Foundationを利用しないSwiftプログラミングも徐々に広まってきました。ここではその一例として、Open Swiftを利用したSwiftの世界をご紹介します。
  • Apple Payの導入について

    Yusuke Kita (@kitasuke)
    アメリカではApple Payをサポートしているアプリが多くなり、良く使われる決済手段のひとつになっています。このトークでは、メルカリがApple Payを実装した際の具体例や知見を共有します。
  • Core Dataはツンデレ?

    Bruce Evans (@brevansio)
    「Core Dataを見たけど訳が分からない」「すぐにエラーが出た」「使えない」Core Dataと聞くと数多くのプログラマーが怖がります。しかし、CocoaプログラミングのなかでCore Dataは最強のツールでありAppleのオススメでもあります。では、何故嫌われてるのでしょうか?実は見た目が難しいだけなのです。このトークではCore Dataの使いづらい「ツン」と使いやすい「デレ」を引っ張り出す方法を説明します。
  • Metalで画像処理をしてみよう

    はまだ (@HaNoHito)
    Metalは、iOS8で導入されたGPUを扱うためのフレームワークです。
    Metalを使うことで、3DCGを簡単に、かつ、高速にレンダリングすることができます。しかし、Metalの魅力は、それだけにとどまりません。Metalは並列計算を高速に行うためにも使えます。
    今回は、画像処理を例にして、Metalを使った並列計算の方法を紹介します。
  • Clangライブラリを使ってObjective Cプログラムを検査しよう

    松本宗太郎 (@soutaro)
    Clangはコンパイラですがライブラリでもあります。Clangを使うと、型検査などのプログラムの意味に基づく解析・検査が簡単に実装できます。このトークではClangを使った解析器・検査器の開発、テスト、Xcodeとの連携や配布の方法などについて説明をします。Objective Cプログラミングに役立つ自分だけのツールを作ってみましょう。(ツールの開発にはC/C++を使います。)
  • 2-Tierアーキテクチャ+Reactive時代のiOS開発

    松本 勇気 (@y_matsuwitter)
    AWS Cognitoやその他Mobile SDKをReactiveなアプリ設計と組み合わせつつ、2-Tierアーキテクチャ時代のアプリ設計・開発・運用の実際について、先日リリースしたサービスの開発を元にお話します。
    認証・認可、ログ収集、通知の管理などサービス改善に必要な要素を如何に手軽に、かつ安定して実装するかについてが主な内容になるかと思います。
  • tvOSアプリ開発tips

    Toshihiro Suzuki (@toshi0383)
    tvOSはiOSとほとんど同じ感覚で作れて、新しいAPIも使えて、とても楽しいプラットフォームです。
    しかしいざ作ってみると、いろいろな落とし穴がありました。
    私がこの半年間開発リーダーとして関わったAppleTVプロジェクトで得た知見を、開発中大変お世話になったiOSコミュニティの皆さんにフィードバックしたいと思います。
  • You feel like you used it properly with Firebase

    Motohiko Fukase (@mfks17)
    Firebase is expanding to become a unified app platform for Android, iOS and mobile web development. We’re adding new tools to help you develop faster, improve app quality, acquire and engage users, and monetize apps. I would like to introduce features of Firebase and show you how to properly use it.
  • Swifty User Status Management

    Naoto Kaneko (@naoty_k)
    ユーザーがもつステータスにはログイン/非ログインといったセッションの状態、課金/非課金といった課金状態など多岐に渡ります。さらに、それぞれの状態に応じてアプリのいたるところで振る舞いが変化するため、ユーザーステータスの管理は煩雑になりがちです。このトークでは、Swiftらしいコードによってこれらをスッキリ解決していく設計をご紹介します。
  • モバイルクロスプラットフォームツールの現在

    laiso (@laiso)
    iOS、AndroidそしてWindows。近年のモバイル向けOSの台頭によって、モバイルアプリケーション開発の世界でもクロスプラットフォームの開発ツールが充実してきました。
    このトークではReact NativeやXamarin、Ionic、その他多くのツールがなぜ開発され、どのようなアーキテクチャで実現されているのか?
    iOSエンジニアから見たネイティブSDKとの違い、などを紹介します。
  • U-18のiOSアプリ開発事情と教育現場での活用

    増原 大輔 (@masuhara_)
    中高生向けにiOSアプリ開発を指導してきた経験から、18歳未満の日本の開発者事情や、Xcodeプラグインの活用などについて話します。Xcode Source Editor Extensionについても少し触れられればと思います。
  • Swiftのコードをより読みやすく、理解しやすくするための実践的なTips

    Yoshikuni Kato (@yoshikuni_kato)
    コードレビューの経験から得たTipsを、実際の例を交えながら紹介します。
    1. guard句の活用
    2. Resultの使用
    3. Nested Functionsの活用
    4. Optionalの適切な設定 ※
    5. FRPライブラリの活用
    ※ storyboard使用時のDependency Injectionにまつわる議論も紹介します。Swift歴に関わらず、全員が意識できるポイントになると思います。
  • エラーと警告でコードをデザインする ~赤と黄の輪舞曲~

    ezura (@eduraaa)
    警告やエラーはお好きでしょうか。
    コードの誤りをコンパイラレベルで指摘する "疾速のフィードバック"、目を奪われずにはいられない "圧倒的存在感"。彼らこそ、我々エンジニアを正しい道へと導く最高の使者である。
    本発表では、attribute や Phantom Type 等を用いて、自らの生み出したコードをエラーや警告に守護させ、使用者を導く方法をお話しします。
  • サーバサイドエンジニアのiOS開発奮闘記

    Yusuke Wada (@yusukebe)
    サーバサイドのアプリケーションを書き始めて10年近く経ちました。現在でも「写真で一言ボケて(bokete)」というサービスのWeb APIを開発運用していますし、自分なりのアーキテクチャ像を描けるようになりました。そんな最中、ひょんな事に「ガチで」iOSアプリを書くことに... ARCもない時代にアプリを作ったことはあれど、それは趣味のレベル... ということで、本トークではとあるサーバサイドの技術者がモバイルアプリ開発をどのように学び解釈し、設計方針を立て実装したか?の奮闘記を話したいと思います。現在進行形のストーリーですが、たぶん当日までにはある程度成果が出ているはず!
  • アメリカ発 完璧主義のSwiftエンジニアによるThe Perfect Type

    Ray Fix (@rayfix)
    Swiftではすべてをクラス、構造体、プロトコル、列挙型、タプル、関数で表現します。これらのツールを使いこなして、より簡易で、間違いのないコードを書けるかをテーマにします。具体的な実例を元に、ジェネリック型やプロトコル拡張、使用方法を説明します。また、関連タイプの制限をどのように乗り越えたらいいか、分かりやすく説明します。
  • アメリカ発 完璧主義のSwiftエンジニアによるThe Perfect Type

    Ray Fix (@rayfix)
    Swiftではすべてをクラス、構造体、プロトコル、列挙型、タプル、関数で表現します。これらのツールを使いこなして、より簡易で、間違いのないコードを書けるかをテーマにします。具体的な実例を元に、ジェネリック型やプロトコル拡張、使用方法を説明します。また、関連タイプの制限をどのように乗り越えたらいいか、分かりやすく説明します。
  • メモリー管理の嬉しいバイキング料理

    Ray Fix (@rayfix)
    Swiftの初心者の中には、自動参照カウントを使えば、メモリー管理は気にしなくても良いと認識している方が多くいます。確かにSwiftは、ごみ収集システムを使うより、予測可能性は高いと言えます。しかし自動参照カウントを使用する際は、メモリー構造を意識する必要があります。ユーザーは、幾つかの方法でメモリー構造の落とし穴を避けることができます。今回のトークではXcode 8のライブコーディグをしながら、メモリーの取り扱い方法について分かりやく説明します。
  • iOS Human Interface Guidelines Betaから読み解く、iOS 10時代のUI

    Daigo Wakabayashi (@frnk)
    iOSアプリのUIを作る上での指針であり聖典とも称される「iOS Human Interface Guidelines」が、iOS 10に合わせて大きく刷新され「iOS Human Interface Guidelines Beta」として公開されました。
    新旧の比較を交えながら、iOS 10時代にAppleがデベロッパーに対してどのようなUIを求めているのかを読み解きます。
  • iOSエンジニアにも知ってほしいAWS活用法

    佐々木 拓郎 (@dkfj)
    インフラエンジニアだけがクラウドを扱うという時代は、過去の話になりました。サーバレスアーキテクチャという言葉に代表されるように、サーバ構築不要で直接的にアプリからクラウドのサービスを利用できるようになっています。AWSのインフラ本とアプリ本の両方を書いた経験から、モバイルエンジニアがクラウドを利用する為のノウハウを実例を元に紹介します。併せて、mBaaSとクラウドの考え方の違いも紹介します。 https://t.co/GTCn8TSGJD
  • 依存性を制御してテストしやすい構成をつくろう - Dependency Injectionの活用

    Yoichi Tagaya (@yoichitgy)
    「テストを書こうと思ったけど、テスト対象のインスタンスをつくるのが手間で結局テストを書きませんでした」という経験はありませんか?インスタンスの生成が手間と感じるのは、その型の依存性が複雑になっていると起きる問題です。Dependency Injection (DI) の考え方を身につけてテストしやすい構成をつくることにより、アプリのより高い品質と開発速度の向上を手に入れましょう。
  • 今日から使えるUITableViewをなめらかなスクロールにするTips。2016夏

    yimajo (@yimajo)
    iPhoneアプリの登場から存在しているUITableViewは、かつてと比べようのないほど多くの情報を表示するようになってきました。皆さんはユーザに違和感を与えない、なめらかなスクロール体験を提供できているでしょうか。

    この発表は、UITableViewをなめらかにスクロールさせるため、測定により効果的にボトルネックを取り除く方法や、今年夏までに積み重ねれられてきた高速化の手法を紹介していきます。
  • 動画編集のエトセトラ

    nakajijapan (@nakajijapan)
    最近ではWEB・アプリでもいろんなところで動画に関連するコンテンツが増え、様々なシーンで動画が利用されるようになってきました。
    とはいえ、アプリで動画の作成したり編集したりしようとすると、設計を理解するのに時間がかかったり、情報がそもそも少なかったりと自分で学ぶ環境としては大変難しい状況であります。
    そんな中、本発表ではアプリで動画を編集するところを切り口として、メディアをどのように扱い、どのように編集するのか、つまずいたポイントなど、少しでも皆さんに便利情報をお伝えできればと思います。
  • iOS専業フリーランスエンジニアが考えていること

    堤 修一 (@shu223)
    iOS開発って参入障壁が低いですよね。Xcodeは無料だし、わかりやすい書籍は山程あるし、ググればいくらでも情報が出てくるし、オンライン・オフライン問わず懇切丁寧に教えてくれるスクール等もたくさんある。なので若くて優秀な人がどんどん参入してくる。

    そして、プログラミング力に関しては世の中にはすごい人がいくらでもいるし、学ぶべきこともいくらでもあって、キリがない。

    そんな中で、iOSを専業とするフリーランスエンジニアが、おもしろい仕事を得るために、普段どんなことを考え、実践しているか、について話します。
  • Core Bluetoothをはじめよう

    堤 修一 (@shu223)
    ウェアラブルなおもちゃ「Moff」、次世代車いす「WHILL」、ウェアラブルトランシーバー「BONX」等、数々の実プロダクトに携わった経験をバックグラウンドとして、BLE / Core Bluetoothの基礎と実践を実例でわかりやすく解説します。
  • エンジニアの、エンジニアによる、エンジニアのためのアプリアイコンデザイン

    Motoki Narita (@motokiee)
    「デザインができない...」「実装できたけどアイコンが作れない」

    自らの手で様々な問題を解決していくエンジニアでも、その多くがアプリのデザイン、アイコンに頭を悩ませています。

    本発表では、"デザイナーではなくエンジニア"がアイコンデザインのポイントをお伝えします。

    自身で開発、デザインを行いベスト新着アプリにも選ばれたアプリ、「リボカメ」を題材にし、ライブデザインを交えて解説を行います。

    アプリのコンセプトを活かしたイカしたアイコンをエンジニアでも作れるよう、考え方やツールの使い方をお伝えします。
  • エクストリームPlayground

    原 一史 (@haranicle)
    Playgroundはただのインタプリタではありません。エンジニアの遊び場です。
    もっと楽しく。もっとエクストリームに使い倒しましょう。

    この発表では、Playgroundの基本的な使い方から、実用的なTIPS、そしてエクストリームな使い方を紹介します。
  • KVOで作るSwiftyなMVVMパターン

    Shin Yamamoto (@SCENEE)
    MVVMやReactiveプログラミングが注目され、RxSwiftなどを試していった結果、私は、NSObject由来の枯れたKVOに原点回帰し、最近は、KVO+MVVMパターンをSwiftで活用していく開発スタイルに、落ち着くようになりました。その経験を踏まえて、私が考える、MVVMパターンの肝は何か?KVOを適用するコツは何か?iOSアプリ開発において、"loose coupling”と"tight cohesion”をどう作り上げるのか?なぜReactive系ライブラリを辞めたか?、などをお話する予定です。
  • 今日から始める!!AWS Mobile Hubで、モバイルからクラウドの操作

    佐々木 拓郎 (@dkfj)
    昨今のモバイルアプリの開発は、モバイル側だけで完結することは殆どありません。APIを通じてバックエンドのシステムと連携することが多いです。またバックエンドシステムについてもmBaaSやクラウドの発達により、ほとんどコーディングレスで構築できるようになっています。とは言ったものの何から始めれば良いか解らないという人にお勧めなのが、AWS Mobile Hubです。AWS側の設定から、Swift,Object-Cのひな形ソースなど1アクションで生成できます。自分でバックエンドの仕組みも作れるようになると、活躍できる範囲は大幅に広がります。是非一度、クラウドの世界にダイブしてみませんか?
  • Swiftでの音声認識実装まとめ

    satoshi0212 (@shmdevelop)
    Speechフレームワークで公式機能として音声認識機能が実装できるようになりました。
    録音済みファイル認識デモ、リアルタイム音声認識デモでその精度と速度を体感してもらいます。
    Speechフレームワークの制約、オフラインで音声認識したい場合のSpeechフレームワーク以外の選択肢、
    実装上のtipsなども共有します。
    このセッションで音声認識機能実装についての現状と課題を整理してください。
  • クラウドを使って、モバイルアプリの実機テストをする

    佐々木 拓郎 (@dkfj)
     iOSアプリの開発で避けて通れないのが、実機テストです。例えばiPhone5以降で考えても、3種類の画面サイズがあります。またOSを3世代保証しようとすると、掛け算で9種類となります。組み合わせの全てをテストする必要がない場合が殆どですが、思いがけない機種・OS依存もごくまれに発生します。全てテストしておきたいけど、費用対効果の関係で手が出せない場合が多いのではないでしょうか。また、古い機種・OSを維持し続けるのも大変です。 
     そんな時に役立つのがクラウド上にあるモバイル端末を利用してテストするサービスです。国内/海外のサービスを含めて、実情及びテスト自動化を紹介します。
  • SwiftとJSONと私

    池田 翔 (@ikesyo)
    JSON APIのレスポンスをモデルに置き換えるJSONマッピング。古き良きObjective-C時代には定番のMantleを使っていれば心配ありませんでした。しかし世は大Swift時代。ジェネリクスや値型といったSwiftの恩恵を享受するにはSwift製のJSONマッパーが必要です。本トークでは複数のJSONマッパーを使用、開発してきた立場から各種ライブラリーを紹介していきます。
  • SwiftとJSONと私

    池田 翔 (@ikesyo)
    JSON APIのレスポンスをモデルに置き換えるJSONマッピング。古き良きObjective-C時代には定番のMantleを使っていれば心配ありませんでした。しかし世は大Swift時代。ジェネリクスや値型といったSwiftの恩恵を享受するにはSwift製のJSONマッパーが必要です。本トークでは複数のJSONマッパーを使用、開発してきた立場から各種ライブラリーを紹介していきます。
  • NearbyAPIとRxSwiftで作る「名刺交換」

    Kazuhiro Sakamoto (@kazu0620)
    100万人が利用する名刺アプリEightでは、RxSwiftとNearbyAPIをという2つの新しい技術を使って、アプリ上で名刺交換を行うという新機能を今春リリースしました。近隣にいるデバイスと、BLE/超音波(!)を使ってメッセージのやり取りをするNearbyAPIの実践的な使い方とハマりどころ、そして複雑な状態管理をRxSwiftで如何にシンプルに実装することができたかについてお伝えしたいと思います。
  • 依存性を管理する

    池田 翔 (@ikesyo)
    CocoaPodsやCarthageの登場、進化により、依存ライブラリーの管理は飛躍的に簡単になりました。しかしそのライブラリー達も、iOSなどの各種SDKやXcode、また近頃はSwiftのバージョンアップへの追従が必要になっており、無為にしていてはプロジェクトが逆にその依存性に振り回されてしまいます。本トークではライブラリーの選定やそのバージョンアップへの追従の仕方、プロジェクトの秩序を保つことについてお話します。
  • iOSで電子書籍アプリ開発のしかた教えます

    Kaz Yoshikawa (@nanolynx)
    iPadの登場が電子書籍元年と言われて早6年。電子書籍アプリは当たり前になりつつも進化していないのが現状。大手DTPアプリの元エンジニアが電子書籍アプリ開発のノウハウを公開します。画像やPDFベースのアプリの仕組みの長所や欠点、さらにコンテンツの配信の仕組みやアイディア、さらにインタラクティブなビューアの設計。そしてコンテンツを効率的に制作できるプロダクションシステムのアイディアへと…電子書籍アプリ開発の裏側をお見せします。
  • はてなブックマーク iOSアプリ開発におけるSwiftコードレビュー

    にわタコ (@niwatako)
    Swiftのコードレビューにはどのような観点があるでしょうか。実際のプロダクトで行われているコードレビューはどのようなものでしょうか。
    私は昨年はてなに入社してからSwiftを書き始め、全てのPullRequestでレビューを受けるようになりました。プログラマ人生の大半をObjective-Cで、受託案件で、そして1人プロジェクトで生きてきた私にとって、これは新鮮な体験でした。
    このトークでは、私がはてなに入ってからの10ヶ月間全てのレビューを振り返って、レビュー観点、チームのレビューの様子、Swiftそのものや設計について学んだことなどをお伝えしたいと思います。
  • あなたの知らないUIKitの世界

    Hiroki Kato (@cockscomb)
    複雑な画面を作るとき、ひとつのview controllerに何もかも詰め込んでいませんか。あなたのアプリはadaptiveになっていますか。スマートフォンやタブレットの画面が大きくなり、ますます画面の構成が複雑化する現代。UIKitにはそのような問題を解決するためのたくさんの仕組みがあります。
    共有シートで共有するコンテンツをもっとカスタマイズしたいと思ったことはありませんか。アプリを再開したとき以前表示されていた画面を復元したいと思ったことは?
    このトークでは、私がこれまでいくつものアプリを開発する中で得られた、UIKitのとびきり便利な機能を紹介します。
  • Webサービスとモバイルアプリを並行開発する妙技

    Sixeight (@tomohi_ro)
    近年のモバイルアプリ開発において、Web API は切っても切り離せない存在となりました。
    APIの提供元となる Web サービスと、モバイルアプリの同時並行開発は、存在しない API を相手に開発を進めなければならない難しさの反面、アプリに寄り添った API を設計するチャンスでもあります。
    このトークでは、開発初期からリリースまで、私の体験を擬似的に辿ることで並行開発における妙技をご紹介します。
  • ATS必須化に備えてUIWebViewからWKWebViewに移行する

    にわタコ (@niwatako)
    WWDC2016にて、AppStoreの審査は2016年末にATS(App Transport Security)を必須化するとアナウンスされました。

    そのかわりにiOS10では、ATSを有効にした状態でもWKWebViewのみhttp通信を許可する設定が新たに導入され、UIWebViweはWKWebViewに移行することが勧められています。しかし、UIWebViewなら標準実装に任せて動作していた機能がWKWebViewではプログラマーが実装しなければならない、などの落とし穴もあります。

    このトークでは、UIWebViewからWKWebViewへ移行するケースを念頭にWKWebViewの使い方を紹介します。
  • AutoLayout入門 - レイアウト制約を数式のように定義しよう

    藤本 尚邦 (@fhisa)
    AutoLayoutのことが実はよくわかっていない、そんなあなたのためのAutoLayout入門です。よくわからないままXcodeのGUIでAutoLayoutを設定しようとすると混乱することになりがちです。この発表では、AutoLayoutの基本的な考え方を理解して、その考え方に沿ってSwiftプログラムで簡潔にAutoLayoutを書く方法を示します。
  • はてなブックマークを支える開発フロー

    Taiki Fukui (@yashigani)
    iOS向けはてなブックマークアプリは昨年11月のフルリニューアル以降、20回を超えるアップデートを繰り返し、高速にリリースを繰り返してきました。
    しかしながら、開発チームがチームとして成立した歴史は浅く、リニューアル以降のことになります。にも関わらず、開発スピードを落とさずリリースを繰り返すことができた理由には効率的なチームビルディングと開発フロー、カイゼンをうまく実施することができたからです。
    このトークでは、はてなブックマーク開発チームにおいて、いかにチームビルディングをしどのような体制でどのようなフローを用いて開発しているのかを紹介します。
  • こんどこそXcode BOTでContinuous Integration

    TachibanaKaoru (@TachibanaKaoru)
    Xcode BOTは、Appleの公式CIツールでありながら、長らくずっと注目を集める存在ではありませんでした。
    Xcode BOT登場時から日本で使い続けてきた(たぶん)唯一のエンジニアとして、最新Xcode BOTのPros/Cons、そして実際のプロジェクトで使いこなす時に役立つTipsなどをお伝えします。
  • Dependency Injection with Swift

    Taiki Fukui (@yashigani)
    あなたのアプリにシングルトンパターンを起用し、ユニットテストを諦めたことはありませんか?
    Dependency Injectionを用いれば、あなたのアプリから忌むべきシングルトンパターンを排除できるだけでなく、簡潔な依存やモックしやすくユニットテストが容易な実装が実現できます。
    このトークでは、Dependency Injectionのアイディアについて紹介し、SwiftにおけるDIのパターンを紹介します。
  • レガシーコードと向き合う and 仲良くする方法 or 提案

    Yusuke Ohashi (@iMickx)
    最初は、そんなつもりじゃなかったのに、、開発に携わる人間が増えるにつれ、どんどんコードはカオスになっていきます。突然、レガシープロジェクトにエンカウントし、死にかけたコードベースを復活させたい、という思いから始まった、プロジェクトの"ガベージコレクタ"としての普段の活動について話せたらと思っています。
  • Sketch3からアプリへ直接レイアウトを受け渡す試み

    Yoshimi Kurihara (@スライドを公開します)
    デザイン指示書を介したデザイン実装手順を省略するため、Sketch3から中間ファイルを経由してアプリへレイアウトデータを取り込むのはいかがでしょうか。

    もちろん既存のSketchファイルがそのままアプリで再現されるわけではありません。適用可能な箇所・メリット・デメリットなど、現在の取り組みについてお話しします。
  • iOSアプリで変えるこれからの紙製品の価値

    アプリの力で魅力的なプリントプロダクトを創りましょう!
    コーデンベルクはiOSアプリと印刷工場を、たった数行のコードでつなぐクラウド印刷APIです。
    iOSアプリからオートメーション化された商用品質の印刷工場をコントロールする可能性をみなさんと共有します。
  • MVVMアーキテクチャでViewModelとViewをDRYにするためのプラクティス

    MVVMアーキテクチャーを採用したiOSアプリ開発で私が難しく感じたのは、ロジックの重複を排除することです。
    特に、サブビューの一部が異なるViewが複数存在するときはViewレイヤーに加えてViewModelでも共通ロジックの取り扱いを考慮する必要があります。
    このトークでは、Protocol Extensionsを用いてViewModel内でロジックを共有するアプローチを探ります。
    あわせて、Compositionを用いてView内でロジックを共有するアプローチについても話します。
  • iOSアプリ開発のCI/CD

    とし (@tarappo)
    iOSアプリ開発においても、もはやCI/CDは必須といえる状況になってきました。

    本発表では、どのようにCI/CDをしているのかといった話を、数あるCI/CDのためのサービスの中からJenkinsとCircleCIを中心に話します。
    また、それぞれのサービスのTipsや我々が開発したツールについても併せて話します。
  • WWDC16参加レポート

    Jin
    運良くWWDC16の抽選にあたり、1週間SFに行ってまいりました。
    残念にも抽選を外れた方々のために、大量の現地写真を交えながら、メディアで伝えられなかった、生々しいWWDC16をお届け致します。
    発表内容やサンプルコード、実装スクリーンショットなどテクニカルコンテンツにつきましては、NDA範囲を確認しつつ少し触れればと思います。
  • もういい加減、MVVM等でレイヤーやクラスの数を増やして複雑に書けばかっこいいという風潮をやめたらどうですか?〜楽天市場iOSアプリのリーダーが語る、楽天市場のアーキテクチャデザイン〜

    タイトルに怒りを覚えた皆様には是非聴きに来て頂きたい!
    私は、決してデザインパターンが嫌いというわけではありません、意味もなく最初からデザインパターンを自分のコードにはめようとするデベロッパーたちにストップをかけたいだけです。
    意外と多いんです、洗脳されたのではないかとすら思える、無駄にファイルやクラスを増やしたがる方々。
    シンプルが、一番なんです。
  • FastlaneとHubotによるリリースフロー最適化への挑戦

    中村 文哉 (@nafu003)
    「App Store Best of 2015 今年のベスト」に選出されたPlayer!を開発する株式会社ookamiではChatOpsによるリリースフローの自動化を進めています。

    本発表では、iOSとAndroidのリリースフローを自動化するツール群であるFastlane、そしてbotの開発・実行を容易にしてくれるフレームワークであるHubotを利用してSlack上からリリース作業を行う方法について説明します。

    皆さんがiOSのリリース作業について再考する機会を創出することを目的とし、
    各ツールについて概要を示し、弊社での導入前の課題、導入後の効果についてもお話しします。
  • デザイナーがコードを書く現場

    酒井篤 (@radioboo)
    「家族アルバム みてね」の開発現場ではプロダクトを効率的に改善していくためにデザイナーが積極的にコードを書いています。デザイナーがコードを書くまでにやったことや、それによってプロダクト開発のどういう局面でメリットが生まれたかなどを紹介できればと思います。
  • Rejectcon 8/30 イベントページ

    メルカリiOSインターンでの幾多なる失敗で学んだリーダブルコードの大切さ!読みやすいコードとはこういうものだ🍣🍣

    yuzushioh (@yuzushioh)
    このトークでは僕自身がメルカリ・ソウゾウ社でiOSインターンとして行っているアッテの開発を通じて重ねててきた幾多なる失敗から学んだリーダブルコードの大切さを例を元に紹介していきたいと思います。1人で開発してる時には絶対に気づくことのない、他人に対して読みやすいコードとはどういうものなのかを僕自身がPull Requestで指摘された実装を元に伝えたいと思います。
  • Rejectcon 8/30 イベントページ

    まだJPEGで消耗してるの?〜WebPで創る快適新聞ライフ〜

    吉田健人、猪飼大志
    日本経済新聞社のスマホアプリ「紙面ビューアー」のUXを向上させるために行ったコア技術について紹介します。iOSアプリ上でのWebPを使用した低容量・高画質の紙面イメージの管理・表示方法や、紙面イメージをWebP化して配信するためのAWS Lambdaを使ったサーバーレスアーキテクチャ、また、JPEGを使用していた改善前と比べて、どの程度画像ダウンロードのスループットが向上したかについて説明します。
  • Rejectcon 8/30 イベントページ

    watchOSでモーション認識

    堤 修一 (@shu223)
    watchOS 3 より姿勢情報を取得できるようになりました。これを用いるとたとえばテニスのスウィングのフォアハンド・バックハンドを識別したり、他にも様々な腕や手首の動きを認識することが可能になります。

    本発表ではモーション認識に不可欠なオイラー角やクォータニオンについて説明し、watchOSで簡単なモーション認識プログラムを書けるようになることを目指します。
  • Rejectcon 8/30 イベントページ

    Swift で日本語プログラムに挑戦

    Kaz Yoshikawa (@nanolynx)
    Swiftからという訳ではありませんがUnicodeを使えば漢字や日本語で日本人にとってもっと可読性の高いプログラミングが可能ではないかと一瞬思った人もいるかと思いますが、本格的に試みた人は少ないかと思います。今回は日本語で一体どこまでプログラミング可能なのか、どんな日本語の名前の付け方が考えられるのか、実際にどんな利点と問題があるのか、ついには実際に日本語で将棋盤を実装してみた試みの紹介と考察を紹介します。
  • Rejectcon 8/31 イベントページ

    iOSアプリ開発のテスト環境

    とし (@tarappo)
    iOSアプリ開発においてもテストを書くための環境は以前に比べて整ってきています。
    しかし、どのようなことが出来るのか?といったことを知らない人は多いように思えます。

    そこで、本発表では現在のiOSアプリ開発におけるテスト環境として「テスティングフレームワーク」「テストの実行環境」「CI環境」 についてデモ動画を使いつつ、それぞれについて述べます。

    本発表が、皆様の自動テストをはじめるきっかけになれば幸いです。
  • Rejectcon 8/31 イベントページ

    RxSwift、Realm、Reproを使ってみて

    Daisuke Nagata (@dbank0208)
    新しいコーディングの流れがあるReactive概念のRxSwift。高速で、コーディング量も従来のCoreDataより少ない記述で完成できるRealm。開発者への動画サービス、Push通知などのサービスを提供するRePro。この三つのFrameWorkを組み込みアプリケーションを作成。Objective-cなどで今まで取り組んでいたプログラムの保守コスト、開発コストを各々で判断していただき、新しい技術の取り組みの推進をしていきたいと思います。
  • Rejectcon 8/31 イベントページ

    魅せるデバッグ技術

    Toshihiro Morimoto (@dealforest)
    人とデバッグしたことがありますか?
    その時に何が問題かをすぐに特定したり、自分が知らないアプローチで問題を解決しようとしたり。
    「この人すごい!!!」と衝撃を受けた体験は誰しも1度はあるかと思います。
    僕の体験からデバッグの時に LLDB の機能を使えたり拡張するだけで、比較的容易にそう思わせることができます。
    デモとともにその違いやノウハウを30分かけて懇切丁寧に解説します。