DDDを学んだことはありますか?
レイヤー化アーキテクチャとかの話でしょ?と思っていませんか?
DDDは小手先で行うものではなく、仕組みを作っていくことが主です。
DDDを学び実践することで、チーム各員の意識が変わり、今のプロダクトが整理されていくはずです。
そんなDDDへの入り口を開くセッションに出来ればと思います。
Swiftは値型中心の言語です。標準ライブラリで提供されている型はほぼすべてが値型です。値型を活用することでミュータブル/イミュータブルクラスのいいとこどりをし、簡潔でメンテナンス性の高いコードを書くことができます。しかし、Obj-CやUIKitの影響もあり、iOSアプリは今も参照型中心で開発されることが多いように思います。このトークでは、ライブコーディングでアプリを丸々一つ作り、値型の特性を活かしたiOSアプリの開発手法を紹介します。
社内で新規アプリを開発するぞ、そして今回はシンプルなUIの中にも気持ちの良いアニメーションを盛り込むぞ!という所から始まったプロジェクトにてUI開発を担当した際に、得た知見やデザイナーとの協業の際に留意した点、シンプルな中にも心地よいアクセントをつけるためのポイントになる実装やデザイナーとの協業の際に使用したツール、UI表現をする過程で検討したライブラリ等やその他の点についてもご紹介できればと思います。
通常起動にプッシュ通知、Universal Linksはもちろんのこと、Core SpotlightやWidget、Home Screen Quick Actionには対応してますか?
今年はiOS12でSiri Shortcutが登場。またAppDelegateが肥大化します。
…なんてことがないようにきれいに整理しませんか?
確認に手間がかかる起動経路まわりを効率よく実装するための設計やテストについて具体例を用いて紹介します。
TableView, CollectionViewの部分更新の為に、RxDataSources, IGListKitなど、多くのライブラリが開発されて来ました。
それらの内部では、効率的な差分検出のために差分アルゴリズムが使われています。作る側はもちろん、使う側もその原理について理解しておくことは重要です。
今回、Myers, Heckelの2種類の差分アルゴリズムについて解説させて頂きます。
アプリがクラッシュするとデバイス内にもクラッシュログが残ることをご存知でしょうか。ただ、そこには16進数のアドレスが並んでいるだけの場合もよくあります。本トークではそのアドレスをメソッド名に変換するツールを紹介し、それがどのように動作するのかを解説します。うまく変換できない原因を取り除けば、それはハッピーシンボリケーション!
●話さないこと:クラッシュログの読み方・クラッシュログを活用したデバッグ手法
iOS11から可能になった画面収録で生放送機能を実装し、サービスインするまでの実装
「家族アルバム みてね」は、徐々に国外にユーザーを拡大しています。常に海外での快適な利用が実現されることを意識して開発していますが、その中でもメディアを高速に配信し・閲覧できることは、最重要課題でした。どのように課題を認識・改善したかの知見をお話ししたいと思います。
アジェンダ
強化学習は機械学習の一種で、試行錯誤を通じて「環境における価値を最大化するような行動」を「エージェント」が学習します。強化学習が例えばゲームでうまく機能した場合、次第にゲームの打ち方は開発者の手を離れ、エージェントは開発者自身よりもずっと強くなっていきます。発表では、強化学習の概要、及びSwiftで強化学習をどのように実装できるのか、そして、AlphaGoで注目を浴びた深層強化学習とは何か、について解説します。
GraphQLを利用したiOSアプリケーションでUITestを実現する方法について説明します。
Swiftの生みの親、クリス氏によって2017年8月にプロポーザルasync/await for Swiftの下書きが公開されました。その内容はコルーチンサポートで、我々はSwiftで非同期処理をより使いやすく読みやすいコードを書けるようになります。このトークはその内容を理解するために、様々な言語で使われるasync/awaitの比較分類、Swift3から使えるasync/awaitライブラリの利用例とその内部実装を解説します!
2017年8月にSwiftの生みの親、クリス・ラトナー氏によりプロポーザルasync/await for Swiftの下書きが公開され、その内容は、コルーチンサポートにより非同期処理を読み書きしやすく書けるようになることを意味しています。このトークでは、Swift 3から使えるasync/awaitライブラリHydraを使って、ライブでアプリを作っていくセッションです。参加者のみなさんはTwitterのハッシュタグでコメントをください!
圏論(カテゴリー理論)は、「対象」と対象間の「射」(関係性、構造)の集まりからなる「圏」を抽象的に扱う数学理論です。関数型プログラミングで度々登場する「モノイド」「関手」「自然変換」「モナド」の由来であり、さらには「米田の補題」「随伴」「極限」「F代数」「カン拡張」など、より高度な概念が登場します。この発表では、圏論から得られる様々な帰結について、Swiftの文法と型で分かりやすく解説していきます。
SwiftやObj-Cで開発されているiOS開発者のみなさんに向けて,Xamarin.iOS をつかったC#言語による開発の実際と,ここ1年で踏み抜いてきた地雷を共有します。またアドバンスドなトピックとして,なぜC#で開発できるようになるのか,また地雷がなぜ埋め込まれてしまうのかをXamarinのソースコードに踏み込んで解説します。
Swift化と言うと、普通objcからSwiftにコードを移植する作業そのものを指します。
しかし、実際には、コードを移植する作業に入る前に多くの障害が存在します。
ビジネスサイドを説得しプロジェクトを立ち上げ、状況にあった方針を決定する。
こういった段階が「Swift化」には最も重要で、最も困難です。
本セッションでは、コードを移植する段階はもちろん、その前段階まで、「Swift化」の助けになる知見を、一気通貫でご紹介します。
KyashのiOSアプリは今年アーキテクチャの見直しと大規模なリファクタリングを実施しました。KyashのiOSチームが巨大な既存アプリをどう変えていったのかを、実際にどのように効果があったかを交えてご紹介します。
内容(予定)
・アーキテクチャを見直す
・テストを書きやすくする
・非同期処理を書きやすくする
・Storyboardとの付き合い方を考える
・ビルドを高速化する
近年、アプリの複雑化に伴ってiOS界隈でもテストの機運は高まっています。
しかしどんなテストをどうやって書いていけばいいかわからず、一歩を踏み出せない人も多いのではないでしょうか。
このトークでは、iOS開発でよく目にするロジックに対して、まず一歩目として、ユニットテストをどう入れていくかのサンプルを、コードとともに紹介していきます。
テスト技法やなぜそこにテストを書くのかなども紹介しようと思います。
KyashのiOSアプリは今年アーキテクチャの見直しと大規模なリファクタリングを実施しました。KyashのiOSチームが巨大な既存アプリをどう変えていったのかを、実際にどのような効果があったかを交えてご紹介します。
内容(予定)
・アーキテクチャを見直す
・テストを書きやすくする
・非同期処理を書きやすくする
・Storyboardとの付き合い方を考える
・ビルドを高速化する
Ethereumに特化したWei walletというモバイルウォレットをOSSで公開しました。このアプリの中ではEthereumKitというEthereumで必要な処理を行うためのフレームワークが利用されています(僕が作りました)。Wei walletの開発や仕様の中で利用したブロックチェーン特有の機能を紹介するとともに、ウォレットの仕組みや送金がどのように行われているのかを紹介したいと思います。
「HTTPS化していればセキュリティ対策は十分」などと思っていませんか?
HTTPS化していても、無線LANやネットワーク機器にセキュリティ対策がなされていないと、中間者攻撃によって通信が盗聴・改ざんされるリスクがあります。
本セッションでは、中間者攻撃対策としてSSL証明書のピン留めを実装する方法を紹介します。またKyashにおいて実際にクライアントとサーバーでどのようにSSL証明書を運用しているかについてもご紹介します。