読者です 読者をやめる 読者になる 読者になる

iOS Creators' Meetup vol.2 参加してきた #oi_study

iOS Creators' Meetup vol.2 に ブログ or Quitaまとめ枠 として参加してきました。
ブログまとめ枠は初めての挑戦です。 (トーク毎に内容の厚みが違うのはご容赦ください。)

oi-study.connpass.com

前回は登壇枠だったんですが、多くの方が登壇、聴講枠に殺到されていたので、抽選前日に聴講枠 -> ブログ枠に枠変えしました。
結果、3/3ピッタリで、平和な枠でした。前回、登壇しといてよかった。

なぜかこの人来てたけど

Oisix様の社員の方々がconnpassのアイコン入り名札を作ってくれていて、非常によかったです。

ということで、以下発表まとめ

LT1. @akatsuki174 「AutoLayoutのデバッグを試みる」

speakerdeck.com 詳しいまとめ -> Qiita

テーマ: AutoLayoutで困った時の対処法を身につける

  1. がんばってログを見る💪
  2. 辛い
  3. SymbolicBreakpoint使おう!!!!

自分もログ見て、わからんと expr コマンド使ったりするので、みんな困ってるんだなとわかってよかったです。

本当はこれすべきだと思ってるんですけどね...

LT2. @grachro(kobayashi_hiroaki)さん 「オブジェクト指向の人がRxSwiftやってみた」

RxSwiftがしっくりきた理由

理由1: Observerパターンを踏襲していて、観察対象がobserverへ流れてくる設計
理由2: メソッドチェーンで書ける

10年以上前に流行った「流れるようなインタフェース」そのもので、関数型プログラミングの敷居が低くなる。 ※ RxSwift固有ではない

理由2: マーブル図でタイムラインがわかりやすい

実際のシチュエーションを想定して使ってみた

github.com

感想
  • シンプルに書ける
  • エラー処理が課題
  • ライブラリ全体像の把握に時間がかかった、サンプル以上のことをやるの大変

自分も最近Rx勉強し始めて、設計の難しさに苦戦しています...

(ちょっと早くてついていけなくなったので、スライド上がったら修正します。)

LT3. @kurikazuさん 「アプリ開発ディレクターが考えていること」

www.slideshare.net

"Storyboard120枚" のエンジニア女子は隣の席

組み合わせれば、何でもできそう -> 作って終わり? -> 否
プロダクトを世に出す -> みんなに喜んでもらう

ディレクターの仕事

様々な人達とのコミュニケーション 開発に集中できる環境できる 売れるものを、売れるタイミングで 何かあったらごめんなさいする

日々直面する問題

1. 「全機能作って」問題

他社アプリにあるからやる -> 解決したい問題から離れないようにする

2. 「Webと同じで」問題

Webと同じ施策を行うことは多い -> そもそもアプリに必要な機能なのか? -> アプリは1回出したら引っ込めづらい

3. 「アプリって必要?」問題

利用者割合WEB : アプリ = 7 : 3 -> 作らないという選択肢はあり

4.「 開発者 (チーム) と幾何のゴールが違う」問題

達成すべき数値は同じなはず -> 開発者は新しいことを取り入れたい -> 場合によってはコスト
Q.どうやって解決するのか -> A. (社内で) 偉い人になる -> 信頼の積み重ね

懇親会でお話したのですが、新しいことを導入するにはやはり社内で偉くなるのが1番の近道な気がしますね...

LT4. @kinyoKouさん 「Realm Mobile Platformをさわってみた」

www.slideshare.net

Realm Object Serverは自分で立てる アプリがバックグラウンドでも動く

三原則

  • Deleteは常に最優先
  • 同じプロパティのUpdateは後勝ち
  • Insertは時系列順 (<-これはあんまり興味なかったらしい)

検証してみた

  • EC2で立てた
  • サンプルアプリは9ステップでお手軽に作れる -> Realm Mobile Platform用のconfig追加するだけ
  • Updateは後勝ち -> 先が勝つこともあった
  • プロパティ毎にUpdateが発生する -> データとして不整合が起きる可能性がある -> 設定で変えられるかも?

LT5. @とし(平田敏之)さん 「iOSアプリにおけるリリースフローとCI環境」

アデノウイルスの人 普段は開発者の環境基盤を整える人

後でスライド上げられるらしい

  • リリースフローの1サイクルに時間がかかってませんか?
  • CI環境どれくらい導入できてますか?

開発 -> 検証 -> iTunes ConnectへのバイナリUploadを如何に素早く回せるか
開発者はコードに集中
コンテキストスイッチを如何に減らせるか -> コンテキストスイッチが発生するのは、自分が仕事をしなければならない時

平田さんとはiOSDCRCで知り合って、10/25のAKIBA.swiftでもお世話になることになっています。
個人的にCIやfastlaneにかなり興味があって、手を出してみたいのですが、実際に運用されている方の話を聞けるのは、本当にありがたいです。

懇親会でBitriseを教えてもらったので、さっそく登録しました。

LT6. @jollyjoesterさん 「iOS10からのプッシュ通知再入門」

Push通知でできることが多くなっている。

  • title, subtitle, bodyを分ける
  • カスタム通知音を使う
  • バッジを付ける
    • バッジは6桁以上になると、「123456789」が [12..89] とかになることに気づいた
  • カスタムアクションを設定する <- iOS8~
  • さらにリッチな通知 <- iOS10~
    • カスタマイズしたView
    • 各種メディア
      • 画像
      • 動画
      • 音声

表でまとまっててわかりやすかったです。久しぶりに@jollyjoesterがLTしてるの聞きました。

ゲストTalk. @3mp(三瓶亮)さん 「コンテキストを意識したアプリデザイン」

speakerdeck.com

  • UXという言葉は大嫌いだった
  • イケてるアプリ作りたい -> 奇抜なデザイン
  • 馴染みのないこと = 認知的負荷 (cognitive load)

テーマ

プライドを捨てて、パクるべし (但し、正しく)

意識すべきコンテキスト

ライフスタイルにおけるコンテキスト -> 一般的にUI/UXと言われているもの マーケットにおけるコンテキスト -> マーケットのトレンドに乗っかる ≒ 無駄なチュートリアルをなくせる

UX MILKについて

  • アプリの必要はなかった: サブプロジェクト
  • UX MILKアプリのUIはSketchで3時間くらいで作ったもの -> なぜか評価されてる

既存のアプリをいい感じにパクる ≒ Paku-respect

  1. ユーザーは自然に使えるものが「使いやすい」
    • 考えさせないことが1番いいデザイン
  2. 制作の意思疎通が明確
  3. エンジニアがUIデザインを進められる

まとめ

  1. 変なこだわりは捨てて、まずはトレンドに従う
  2. その上で、オリジナリティを盛り込む (メインのユーザー体験を損なわない程度に)

かなり参考になりました。 自分も「Twitterみたいな〜〜〜〜、Facebookみたな〜〜〜〜」って言われること多くて、思考停止じゃない?って思うことがあったのですが、意思疎通が明確という点で確かにと納得できました。 (逆にすでにあるものを参考にしないと、アニメーション系はプロトタイプ作り込まないといけなくなりますしね)

懇親会

今回もピザ、ビールに加えて、Oisix様の取扱商品であるお野菜や果物も振る舞われました!!!!
にも関わらず... 次回はちゃんと食べるんだ...

ブログ枠結構しんどかったです...

PyCon JP 2016開催しました! / LTやってきた #pyconjp

PyCon JP 2016が終わりました

PyCon JP 2016 のConference Day が9/21, 22 に開催されましたが、Development Sprintsも本日終わり、全日程終了しました。
ご存知の方も多いと思いますが、今年からスタッフとして活動していました。
昨年の2015が一般でも初参加だし、この時は結構ギリギリまで悩んで一般チケットを買っての参加でしたが、2016はなんだかんだでキックオフから参加してました。

スタッフとしての当日まで

  • キックオフが昨年の12月だったので、もはや全部をまとめるのは諦めます。
  • メディアチームに入った経緯は覚えてないですが、最初は3人しかいなくて、すごい右往左往してた。
  • メディアの中でも、Webシステムやってました。
    • iOSアプリ開発をメインでやりつつ、
    • Webサイトのコード読んだり、
    • PR確認したり、
    • APIの修正したりしてました。
    • 詳細は前エントリ
  • 直近だと9/19(月)に全トークの開始5分前に「タイトル、部屋、部屋毎のハッシュタグYoutube Liveのリンク」のツイートを事前に仕込んでおくってのやりました、めちゃくちゃ消耗しました。

スタッフとしての当日

感想

スタッフ始めてから当日まで、ずっと楽しめました。
iOSアプリエンジニアなボクでもいろいろと楽しめたので、言語の壁を超えて参加するのは、個人的によいことだと思います。
個人的な課題も見えたし、来年もがんばります。

LTやってきた

カンファレンス2日目のLT枠6番目でお時間頂きました。

動画

せっかくなので貼っておきます。

www.youtube.com

28m:19s ~ 33m:50sくらいまでで映ってます。

スライド

We are the PyCon JP Web System Group // Speaker Deck

PDFになると動かないGifも一応

f:id:yutailang0119:20160924170721g:plain:w300

経緯

元々はWebシステムやってる人達で今年の取り組みについてLTやろうって言ってたんですが、本当は別の人がやる予定でした。
その人が20日の夜中に代わってって言い出して、やるか〜〜〜〜くらいの感じでやることになりました。
その後本当にやるってなったのは、1日目の昼くらいだったと思います。

感想

他にもLTやりたかったって言ってる人たちがいる中で、スタッフだし、Pythonのコード出て来ないしで、少しの申し訳無さがありつつも、結構ウケたようで (主観) 、個人的にはやってよかったなと思っています。

LTの中でも話していますが、2日目の朝までiOSのバージョンがv0.1.0だったんで、最初の構成では間に合わなくてごめんって感じになる予定でした。
21日の23:30くらいに In Review のメール来て、そわそわしすぎて寝れませんでした。これも2日目に遅刻した原因です。

発表慣れしてる感じだったねって言われることが多かったのですが、500人超の前で話したことなんてないですし、LT始まる直前まで、「本当に自分がやるの?」って感じでした。
ただ、PCの接続チェックした後は振り切れて、なるようになれって思ってました。
実際、動画見てみると、結構視線をいろんな所にやっていて、緊張してるのがわかりますwww

LT用スライドの翻訳は、SPECIAL THANKS Jonas です。
本当に頭が上がりません。ありがとうございました!

来年に向けて

本日(9/24)が2日目の Development Sprints で来年2017のスタッフ募集が解禁されましたので、早速応募しました。
前エントリでも書いたし、LTでも言いましたが、来年も頑張るつもりでいます。
iOSはやりつつも、せっかくなのでもう少しPythonもやりたいですね。

来年 PyCon JP 2017のChairは今年我々メディアチームを率いてくれた @koedoyoshida さんです。よろしくお願いします!

@takanory さん、座長お疲れ様でした!!!

IMG_16-09-22-15-11-54

PyCon JP 2016のiOSアプリv0.1.0をリリースしました!!!

TL;DR

  • PyCon JP 2016のガイド用アプリ
  • 英語、日本語対応
  • ブックマーク機能あり

PyCon JP 2016

PyCon JP 2016

  • PyCon JP
  • Navigation
  • Free

pyconjp.blogspot.jp

f:id:yutailang0119:20160910002459p:plain:w300

発端

こんなやり取りがあったの2月なんですね...

アプリ作成

0から1人で作るのは初めての経験でした。
一応GitHub上のリポジトリで作業してますが、今のところContributorはボク1人です...

github.com

GitHubで公開される関係上、SecretKeyの取り扱い方法考えたり、ライセンスや署名をきちんとしなければならなかったりと、普段意識しない部分のことを調べるきっかけになりました。
Build SchemeEnvironment Variables環境変数入れれるのは、これで知りました。

使用ライブラリ

だけで、それ以外は自分でごにょごにょしました。
と言っても、難しいことは特にしてません。

画面構成から、機能実装まで100%自分でやったので、処々お見苦しい点はこれからということでお願いします...

Apple Developer Programの登録

これも初めてのことでした。
(個人でDeveloper Programアカウントを持っていないので、いい加減取得しようか迷ってる。)

加えて、Organization登録からできるのは、なかなか無いことな気がするので、貴重な経験だったような気がします。
事前にD-U-N-S® Numberの取得はしておいてもらったので、登録申請から購入手続きまでの期間は10日程でした。
実質やったことは、Appleの担当者から電話が来て、所在確認されたことくらいでしたが。
D-U-N-S® Numberの取得が大変らしいので、1番のハードルはそこなんじゃないかと思います。
ボクは存在すら知りませんでしたw

これからのアップデート

とりあえず、いくつか追加の開発要件が出ているので、それは今週末に対応します。

それが終わったらSwift3.0対応ですね。
PyCon JPの開催時期とSwiftメジャーアップデートのタイミングがもろかぶりでなかなか着手できなかったので、PyCon JP開催の裏で粛々と対応していこうと思います...

(ここからはもはや願望ですが、)
来年以降もメンテナンスして継続的開発を続けて行こうと思っているので、ご意見ご要望はバシバシください!!!
Issue, PRもください!!!

おわりに

レビューください!!!!!

PyCon JP 2016

PyCon JP 2016

  • PyCon JP
  • Navigation
  • Free

☆ください!!!!!

github.com

ブログを書くまでがiOSDC Reject Conferenceです! #iosdcrc

8/30(火), 31(水)と株式会社メルカリさんのオフィスでiOSDCの RejectConが開催されました!!!

iosdc-reject-conference.connpass.com

iosdc-reject-conference.connpass.com

iOSDC で残念ながらリジェクト (不採用) されてしまったプロポーザルが集まった会でした。 中には5つプロポーザルを出して、4つリジェクトされたんで、iOSDCで1本、RejectConで両日話した人もいました。

ボクはお手伝い枠として2日間参加しました。

最初は 照明兼積極的ツイート係 だったんですが、照明は会場のメルカリの方がやってくれたので、結局ただツイートしてるだけの人でしたw
(他のお手伝い枠の方々は粛々と役割を全うされていて、本当すいませんでした...)

toggetterまとめ

togetter.com

togetter.com

推奨ハッシュタグ -> #iosdcrc

個人的に参考になった話

1日目

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

speakerdeck.com WebPの存在を初めて知りました。
自分の関わっているプロジェクトは画像を扱っているアプリなので、iOSがWebPを採用するのか動向をウォッチしていこうと思います。

watchOSでモーション認識 @shu223

qiita.com Apple Watchのモーション認識を使ったアプリの案だけあって、やってみたいなーと思ってます。
オイラー角 というワードを久々に聞きましたwww

2日目

JSON-RPC on APIKit @_ishkawa

speakerdeck.com JSON-RPCの存在も初めて知りました。
RESTの概念からするとAPIを分割するのは当たり前なんですが、受け取る側都合では困ることが多々あり、semaphoreでごにょごにょしたりしていましたが、これしんどいんですよね...
JSON-RPCの複数API投げて、同時に受け取るというのは、難しいこと考えずに済んで、よいなーと思いました。
エラー処理とかはどうなるんですかね。
いつもAlamofire使っているので、APIKitも触ってみようと思います!!!

懇親会

懇親会というか2日目の前後半の休憩時間なんですが、

なんてことを@nerd0geek1さんに言っていて、懇親会でも話していたら、akiba.swiftさんに拾って頂きまして、10月後半開催で調整中です!!!
完全に俺得な感じなんですが、本当にありがとうございます!!!!!!

最後に

主催の@akatsuki174さんお疲れ様でした!!!
明日の米収穫がんばってね!!!!

iOSDC Japan 2016楽しかった!!! <2016/08/20>

日本のiOS関連のConfで初のCfP (Call for Proposals) だったとのことでした。

 

"パーカー付くよ" とのことだったので、迷わずに個人スポンサー (一般のx2の¥8000) でチケットを取りましたが、優先席があり、電源タップも用意されていて最高でした。事前にタイムテーブルを確認した時に、Track Aで行われるトークに興味あるものが多かったのもありますが、結果的に1度も席を移動しませんでしたw

 

各トークの内容については、発表者の方や他のブログにまとまっていると思うので、ほぼ割愛し、以下ボク個人の感想

 

まず、オープニング

オープニングムービーが凄まじく良くて、これを個人で作られた@motokieeさんの凄さ!!! (業者に頼むと高額ですからね、これ) どこかにアップしてくれないかなーと期待しております。

アップされました!!!

www.youtube.com

 

トークの内容的には

  • Reactive関連の話が数件あり、やはり盛り上がっているんだなという印象でした。Rxやりたいけど、難しそうだなーと思っていましたが、やっとテスト用のプロジェクト作りました。
  • iOSDCということもあり、コードが全く出てこないトークが半分くらい

 

懇親会

最初はPyConの知り合いがいたので、知っている人と固まっていたのですが、その方達が帰ってぼっちになったので、いろいろな人にがんばって話しかけてみました。

その中でも "メモリー管理の嬉しいバイキング料理"を発表された@rayfixさんと話せたのは、個人的にすごく大きかったです。

 

それと前日

とiOSDCの公式アプリを作った@yomoappさんに凸アポをしました。結果、カンファレンスアプリの反省点を聞けたり、他のスタッフさんに紹介していただけたり、凸ってみるものだなと思いました。帰り際も、またオンライン上でもやり取りしましょうと言って頂けたので、とても嬉しかったです。

 iOS界隈に知り合いが増えてきて、最近では疑問をTwitterにつぶやくと、誰かが答えてくれたりするので、本当にありがたや、ありがたや...

 

1日トーク聞いて、懇親会でビール飲んで、(前日仕事で遅かったこともあり、)今日は1日爆睡でしたw

こんなに大容量で、(スポンサーのAbema TVのおかげで、)懇親会もあって、(全員分は無かったけど、)お昼のお弁当おいしくて、一般チケット¥4000なら安いですね!かなり満足度の高いイベントでした!!!

あと毬花という名前のビールおいしかったです。

 

来年も個人スポンサーか、ご縁があればお手伝いできたらいいなと思っています!!!

あと、なぜか"プロポーザル出さなかったの?"と聞かれることが多かったので、来年こそは何か出したいですね...

ブログを書こうと思います。

せっかくエンジニアの知り合いが増えてきたので、真面目な感じでブログを始めようと思います。

 

主にiOSとSwift、それとPython辺りになる気がしていますが、雑食系なのでその時々のトレンドを追って行きたいです。

それ以外にも勉強会ネタや、駆動開発のネタになればいいなと思いながら、更新していきたいと思います。

 

よろしくお願いします!