3/8(Thu) @ DeNA | 3/9(Fri) @ Yahoo! JAPAN | |
---|---|---|
19:00 | 開場 | |
19:20 | 会場案内・開会 | |
19:30 |
|
|
19:40 |
|
|
19:50 |
|
|
20:00 |
|
|
20:10 | 休憩 | |
20:20 |
|
|
20:30 |
|
|
20:40 |
|
|
20:50 | 懇親会 | |
21:50 | Closing |
"Swift Package Managerを使い、できるだけ素早くCLIツールを開発するためのテクニックを紹介します。
Swift Package Managerには初期テンプレートや
Xcodeプロジェクトの生成機能などを備えていますが、実際に何かを作ろうとするといろいろなところでハマったりします。
本トークでは、そういった本質的でないところに労力をかけず、Swiftを使ってCLIツールを開発するための設定やテクニック、便利なライブラリなどを紹介させていただこうと思います。
ARKitが発表され、3Dプログラミングに興味を持ち始めた方も多いと思います。
ゲーム開発のためのミドルウェアも充実している昨今、3Dオブジェクトを画面に表示するのは今や難しくないこととなりました。
iOS開発においてもSceneKitという素晴らしいライブラリが提供され、シーングラフやシェーディング、物理シミュレーションや衝突判定に至るまで便利な機能が揃っています。
しかし表示されるべき3DデータがどのようにGPUで加工され画面に表示されているかご存知でしょうか?
本LTでは3D描画の仕組みの根幹であるグラフィックスパイプラインについて説明し、MetalやOpenGL(ES)といった低レベルの3D描画ライブラリにおいてどのクラスや関数がパイプラインのどの役割を担っているのかを可能な限り解説します。
RIBs というiOS/Androidモバイル向けアーキテクチャフレームワークを Uber が 2017⁄11 に OSS 化しました。その概要と使い方、Pros/Cons なども交えて説明します。
私のチームでは、現在Storyboardやxib/nibファイルなど、Interface Builderを用いない実装が推奨されています。なぜ、ほぼ全てのUIをコードで実装する決断をしたのか?Interface Builderとチーム開発という観点からお話します。
また、コード上でUIを実装する為のTips、またInterface Builderを用いるべきタイミングについてもお話できればと思います。
今日では、A/Bテストは製品改良サイクルに着手するための一般的な手法であり、ユーザーが好むものを知ることができます。しかし、A/Bテストの実装は複雑になり、ターゲットは散らかり、その影響範囲を知ることは難しくなりがちです。したがって、削除または変更する際は、注意する必要があります。
最近取り組んでいる、プロトコル、関連型、その他の強力なSwiftの機能を使った A/BテストのよりSwiftらしい実装方法についてお話したいと思います。
イミュータブルオブジェクトは参照を介した共有オブジェクトの変更を避けるために、モダンプログラミングで一般的に用いられています。イミュータブルオブジェクトを更新したいときには、更新したいプロパティ以外のプロパティが、オリジナルと同じ値を持った、新しいインスタンスを生成する必要があります。小さなオブジェクトではうまくいきますが、画像のような大きなオブジェクトではそうはいきません。画像はプロパティとして数千万のピクセルを保持することがあります。ある1つのピクセルを更新するためだけに、すべてのピクセルをコピーするというのは現実的ではありません。Swift では、このような問題を回避するために、他の方法が用意されています。それが値型 (Value type) です。値型のインスタンスが変数に割り当てられたり、関数を通す際は、共有はされずにコピーされます。これは値型がイミュータブルオブジェクトが共有を回避するのと同じやり方で使われます。Swiftでは、標準ライブラリのほとんどの型が値型です。コレクション型もコピーオンライトを用いることで値型として提供されています。これにより、画像の型を値型として実装するのが容易となります。私は EasyImagy ( https://github.com/koher/EasyImagy ) という画像の型を値型として提供するライブラリを開発しています。このトークでは、画像型の例を通じて、Swift の値型の優位性についてお話したいと思います。
このトークでは、なぜ Result<T> よりも Result<T, E> の方が重要である理由を探求したいと思います。
Swiftのバグレポートの中から面白そうなのをピックアップします
"Bertrand Meyerが提唱した、CQS(コマンドクエリ分離)。この概念を理解することは、安全で堅牢なプログラミングに繋がります。CQSはさまざまなシーンで有効活用されています。もちろん、Swiftの言語デザインでも。Swiftのmutating funcの動きを見つめることで、CQSとは何か、どういう点で嬉しいのかを考えてみましょう。
"ビットコインに代表されるブロックチェーンとはなんでしょう。なぜ仮想通貨に価値が見いだされるのでしょうか。そしてpeer to peerであるブロックチェーンネットワーク上で分散的に動作するアプリケーション(Decentralized Applications)とはどのようなものでしょう。クライアントサイドアプリケーション開発を主とするSwiftエンジニアのために、ブロックチェーンの世界とそこでのクライアントサイドアプリケーションエンジニアの役割、そして試しにSwiftでアプリを実装してみるための足がかりをお話します。
現在、ほとんどの時間をサーバーサイドSwift(Kituraがほとんど、たまにPerfectを使います)に費やしています。私の既存のアプリである「ユニバーサルタイムテーブルウィジェト」をよりうまく使い、Swiftにおける適切なバックエンドを迅速に作成できるようになりました。
さらに、教育に関連するスタートアップを立ち上げました。その製品は主にSwift (バックエンド + iOSアプリ)で書かれています。いくつかの大学や学校で、初期ベータ版の利用権限を与えることで、今年の第2クォーターまでに数千の生徒と先生に使ってもらいました。第2クォーターなのは、アルファテストを完了するのに約3ヶ月かかり、インドで学校やカレッジで新しいセッションが始まるのが4月だからです。
ターミナルで手軽に使えるプログラムを書きたい、でもシェルスクリプトは書けない…そういう時は、我々が得意なSwiftでプログラムを書けばいいじゃないか!というわけで、ターミナルプログラムをどうやって作るかを簡単に説明します
iOSアプリエンジニアをしているとデザイナーとのコミュニケーションに対して難しさを感じる人もいるのではないでしょうか
iOSの特性・UIKitの特性の知識の差ゆえに納得いく説明ができないととても歯がゆくなります
また、Sketchで定義しているUIとアプリのUIが同じかどうかを確認するコミュニケーションコストも気になるところです
チームで開発する上でコミュニケーションは欠かせないことです。
そして、コミュニケーションがネガティブになってしまうことは防ぐべきことです
この課題を解決するために私たちのチームでは「AtomicDesignでのデザイン設計」や「デザイナーとペアプログラミング」などを行いました。
このお話では課題解決のアプローチや狙い、実際にやってみて良かったことをお話ししていこうと考えています
俺だって喋りたい!!!
iOSエンジニア。スター乞食です。スターください
人事職からiOSアプリエンジニアへキャリアチェンジをして、現在エンジニア歴2年。自分自身色んな方々に助けてもらってエンジニアになったので、その体験を拡げたいと思いSwift愛好会コミュニティ運営メンバーをしています。iOSアプリのUIデザインを少々たしなみます。
数社のスタートアップでの開発を経験したのちフリーランスになりました。新しいトピックを開発に取り入れていくのが好きで、特にSwiftとFirebaseが好きです。コードを書いていないときは、ミートアップやカンファレンスに出席しているか、登壇しているか、主催をしています。休みの日は地方遠征か海外パトロールをしています。
Kouhei a.k.a gaopin1534. An iOS engineer, used to be a server side engineer. Love technologies and beer.
While creating AbemaTV (Japanese TV app, https://abema.tv/) in his work, he also dedicates his time to functional programming and open source projects. He is a huge fan of Swift, Haskell, and any statically typed languages that compiler can check his bad code, yet he also loves unpredictable, dynamic world he lives in now.
メルカリの開発組織を強くするためにいろいろやっている人。趣味でSwift愛好会やtry! Swiftなど、みんなでもっとSwiftを楽しめるようなネタを試しています。 かんぱいやー(勉強会で乾杯をする人)としても知られていて、乾杯の力でSwift好きの輪を広めています。
GitHub: https://github.com/kazuhiro4949 / Qiita: http://qiita.com/kazuhiro4949 / speakerdeck: https://speakerdeck.com/kazuhiro4949
His posts about Swift on Qiita are well known among Japanese iOS developers. He has also been developing SWIFT QUEST, which is an online book for programming beginners to learn programming from Hello World to monads using only Swift.
AKIBA.swiftをやっている百合好きのダンボールの人です。最近はiOSアプリの設計/テスト/TDDに興味があります。📦 Developers.IO / SlideShare
Yahoo! JAPAN で iOS/Android アプリ開発をしたり勉強会運営をしたりしています。文章のように直感的にコードが読み書きできるプログラミング言語、特にSwiftが好きです。あと音楽と漫画が好きです。
Fresh graduate from computer science engineering(bachelors), was working as an iOS engineer in a startup now started my own company and working directly with my college director and persuing masterrs in computer science in the upcoming academic session.
家族アルバムFammとカップルアプリPairyの開発に携わっている。趣味は物理学で、最近 arXiv.org の論文を閲覧するためのアプリ Lib arXiv をリリースした。
リクルートマーケティングパートナーズで教育系サービスの開発を行っています。Kyobashi.swiftの主催を行っています。「コード : ボルダリング : ゲーム = 0.9 : 1.0 : 1.0」で日々を暮らしています。
エウレカでオンラインデーティングサービスであるPairs(日本語版)のiOS開発を担当しており、主にUI/UXの改善を行っています。
フリーランスのiOSアプリ開発者。難しいことは考えられない性格で、難しいことを全部引き受けてくれる堅牢な設計・型システムが好き。趣味としてカンファレンス・勉強会での発表を継続的に行っている。ActionClosurable, PasteTyeTypeなどのOSSやツールを公開している。
HomeKitやUIテストが好きなiOSエンジニア
DeNAのSWETで、主にモバイルアプリのテスト戦略、自動テスト、CI/CD環境の整備などを担当。 iOS Test Night / Android Test Nightの主宰をしています。
iOS歴3年、Swiftは1.0の頃から触っています。最近はKotlinも好きです。