べーおの備忘録

iOSアプリ開発や生活のことをツラツラと書きます。

配列の中にDictionaryとかが入っているときのindexのループ

タイトルからしてクソコードの匂い・・・

 

こんな感じでクラスの配列を作って

そのプロパティを順番に取り出すとき

valueForKey使うの気持ち悪くね?

って言われた

 

確かに配列にkeyは不自然だよね

Dictionaryだよね

配列ならindexだよね

 

NSArray<hogeModel*> *hogeList = [self getHogeList];

if (!hogeList) {

       return;

}

for (int i = 0; i < hogeList.count; i++) {

     NSString *hogeStr = [[hogeList valueForKey:@“hoge”] objectAtIndex:i]];

     [self drawHogeLine:hogeStr];

}

 

みればみるほどクソコード・・・

 

んでunderscoreで書き直すっす

 

NSArray<hogeModel*> *hogeList = [self getHogeList];

if (!hogeList) {

       return;

}

Underscore.array(hogeList).pluck(@“hoge”).each(^(id obj){

        [self drawHogeLine:obj];

});

 

あら、すっきり

 

pluckは指定したキーパスで取得した値から配列を作るやつ

eachはそれぞれの要素に処理を適用するやつ

 

詳しくはこちら

http://dev.classmethod.jp/smartphone/iphone/ios-underscore-1/

 

昔この書き方よくやってたなー

消し去りたい

 

 

self.propertyと_propertyはどう使えばいいのか?

つい最近までこんなこと考えずに書きやすい

_property を使ってました。

 

今回のプロジェクトで

「setter / getter / init / dealloc 以外で使わんといて」

と言われたのでメモ。

 

参考は

http://qiita.com/weed/items/2736582eeb404cb2c1e6

ここ読めばなんとなくわかる。

 

 

 

 

 

 

 

 

 

 

 

 

MTL勉強会「UX Sketch」Meetup vol.11 に行ってきた!

f:id:watabe1028:20160506185644j:plain

#uxsketch

 

MTL cafe

東京都中央区銀座7-2-6

入り口がわかりにくかったけど張り紙のおかげで助かった!

 

 

結論から言うと、

LT三部は勉強になったけど

全体的に微妙な内容だったな。

 

もっと

こんなUXがアツイ!とか

こんな考え方、アプローチの仕方がある!とか

より実践に近いものを期待してただけにちょっとガッカリ。

最後の方にサービスの紹介だけしてUXの文字すらなかった人もいたし・・・

 

まぁテーマがミートアップだったからしょうがないかなー

 

では。

Gooneys Beer Bash #4 に行ってきた!その5

#gunosybeer

 

場所:株式会社Gunosy

   東京都港区六本木6-10-1六本木ヒルズ森タワー37

時間:19:30

 

テーマはモバイルアプリグローバル!

かなり豪華なメンバーのLTが聞けたので何回かに分けてメモ~

 

 

株式会社ソウゾウ エンジニア 石川洋資氏

 

Swift + JSON - RPC

 

資料は

https://speakerdeck.com/ishkawa/swift-plus-json-rpc

 

 

iOSオールスターズ、APIKitでおなじみですね。

しゃれおつな雰囲気をまとった方ですね。

どっかのイナカモンとは違います。はい。

 

カヤックLINEからのソウゾウ。

すごいなー

 

 

JSON-RPCとは?

1回の通信で複数のリクエストを実行できるらしい。

 

どんな時に使うのかなーと思ったら結構ある!

今回の資料ではタイムラインの投稿、座標、バナーの取得が挙げられてたけど、

普通に1画面で欲しい情報が複数あるって多々あるね。

1スクリーン1メッセージの考え方にとらわれてると

こういったツールを使いこなせないわー

 

使い方は

個々の処理をメソットとして定義

クライアント側で1つのリクエストにまとめる

 

タプルは動的に生成するのは苦手。

どうするか?

あっぷるさんは筋肉で解決してるぞ!

ならばあっぷるさんと同様に筋肉で解決だ!的な。

 

まずはSwift勉強しないと。

もうObjective-cさんじゃ戦っていけない・・・

 

ってことでSwiftの勉強がてらいろいろやろう!

と、たった今決めました。

 

今日のスピーカーの人たちと一緒に開発できるスキルとかを

早いとこ身に付けたいなー

楽しいだろうーなー

と刺激を受けつつ、焦りが出てきた勉強会でした。

楽しかった!

 

次はUX Sketch だー

 

Swiftの勉強予定を後で書こう!

 

 

では。

Gooneys Beer Bash #4 に行ってきた!その4

f:id:watabe1028:20160427185112j:plain

#gunosybeer

 場所:株式会社Gunosy

   東京都港区六本木6-10-1六本木ヒルズ森タワー37

時間:19:30

 

テーマはモバイルアプリグローバル!

かなり豪華なメンバーのLTが聞けたので何回かに分けてメモ~

 

OKpanda Inc 川邊雄介氏(@jeffsuke)

NYのスタートアップで働いてきた話。」

 

 

// 追記

資料がアップされましたー

speakerdeck.com

 

英語の教育アプリ開発

 

NYで仕事をする際に必要なのは

・おいしくない寿司でも折れない心

・くそ寒くても折れない心

 

NYの寿司はご飯がべちゃべちゃでまずいらしい。

本当においしくない!って何回か言ってた。

さらにくそ寒いらしい。

大雪で店も電車も全部閉まって超不便になるらしい。

その点、東京はいい気候だね。

 

pushしようとすると必ずレビューをする

レビューはメソッド名から変数名まで細かく見て

正しく伝わる英語でないとダメ。

Fromってどこからだよ?

そこはToだろ?

とかネイティヴの人にそう言ったレビューをしてもらえるのは貴重かも。

 

これ書いて思ったけど、

プログラムのレビューサービスってもうあるのかな?

いいエンジニアにレビューを頼むのが一律100ドル!とか

このエンジニアが指名No.1とか

そういったサービスができたらフリーランスとかも盛り上がりそうだなー

 

ソースコードは簡単ではなく、最善を取れ!

でました名言。

その通り。

でもいつも最善のつもりなんだよね。

いつもしばらく経って自分のコードがクソだなって感じてしまう。

 

 // 追記修正:ご指摘ありがとうございました!

開発はiPadを並べて「appear.in」で通信して

appear.in

リモートでも一緒に働いてるみたいな感じらしい。

 

ログはappseeっての使ってる。

ユーザ解析とかもできるらしい。

ログのサービスって結構あるんだね。

どれを使えばいいのやら・・・

 

このサービスの開発で川邊氏は

「主体性と主張をいつも問われる」

と言ってたけど確かに大事だよね。

もっと主体性を持って行動しないと・・・

 

 

俺もこのアプリ使って正しい英語を勉強しようかな。

 

 

次は株式会社ソウゾウの石川氏

 

では。

Gooneys Beer Bash #4 に行ってきた!その3

f:id:watabe1028:20160426201413j:plain

写真はビールと一緒に出たカツサンド。美味しかった。

#gunosybeer

 

場所:株式会社Gunosy

   東京都港区六本木6-10-1六本木ヒルズ森タワー37

時間:19:30

 

テーマはモバイルアプリグローバル!

かなり豪華なメンバーのLTが聞けたので何回かに分けてメモ~

 

株式会社トランスリミット 代表取締役 高橋大樹

 

スーツの似合う社長・・・

 

Brain Dots はよくやったなー

クリアした時のすっきり感が良かったな。

 

資料の公開はなし。

なので記憶を頼りに書く。

 

ユーザの95%以上が海外。

日本は4%とか・・・

でもやってる人はヘビーユーザだろうな。

前にこのゲームが好きすぎて入社したって人がいるって記事読んだような・・・

 

海外でやるときに注意すべきこと。

・言葉に頼らないこと

 言語に依存しない!

 母国語でも英語で世界の25%くらいしかない!

 日本なら1%以下とか!

 

・国を列挙するときは気をつけろ

 独立してるとかしてないとか標準で記載するとよろしくない反応が来るらしい

 列挙するときはカントリー&リージョンにしとく!

 国と地域だよーって。

 

GodNG

 ユーザのレベルで最高位が「God」だったが

 ある宗教の方からGodを軽々しく使うな!って怒られたらしい。

 お前ら「oh my god!」とか言ってるじゃん!とかwww

 今はフェニックスだって。

 

・爆発に備えろ

 いつ爆発的なトラフィックが来るかわからない。

 そこでサーバがストップしてサービスに影響が出るとユーザはすぐに離れてしまう。

 なので、

 なるべくサーバはシンプルにして

 ほとんどをクライアントで対処するように。

 

・アプリは軽くしろ

 日本ほどインフラが良い国はあまりない

 なのでDLに時間がかかったりWifiじゃないとDLできないとかだと

  DLしてくれないユーザがたくさんいる。

 通信もそう。

 通信量が多いとパケ代?がかかるので嫌われる。

 ライブラリとか意識して軽くしてるらしい。

 

jsonからprotocol bufferに変えてる

 ちょっとテクニカルな内容

 通信量をできる限り抑えるためにこう言った工夫をしてる

 

社内はエンジニアとデザイナーで8割以上。

これからもこの比率をキープしたいとのこと。

ここはちょっとラボにも似てるな。

 

そうだ!

一番の印象はプロダクトについてだった!

 

「プロダクト開発が最高のマーケティング」

名言!

 

さらに「プロダクト開発に集中できてますか?営業に振り回されてないですか?」って

質問で会場が沈黙www

 

やっぱり開発に集中出来る環境作りって大切だ。

 

今調べたらオフィスもしゃれおつだなー

 

面白かったし、ちょっと考えさせられたLTでした。

 

 

次は OKpanda Inc. の川邊氏。

 

 

では。

Gooneys Beer Bash #4 に行ってきた!その2

f:id:watabe1028:20160426182952j:plain

#gunosybeer

 

場所:株式会社Gunosy

   東京都港区六本木6-10-1六本木ヒルズ森タワー37

時間:19:30

 

テーマはモバイルアプリグローバル!

かなり豪華なメンバーのLTが聞けたので何回かに分けてメモ~

 

 

株式会社 Lang-8 Androidエンジニア 坂口 諒氏

資料は

https://speakerdeck.com/wakwak3125/zhong-guo-deandroidapuriworirisusuru-sitakatuta-1

 

中国でAndroidアプリをリリースする(したかった)

 

お値段以上の家具屋さんで働いていたらしい。

確かあそこのWebの案件大炎上してたよーな?

関係ないのかな?

 

わくわくさんと呼ばれている。

ご、ごろりはいるのか?

 

HiNative という語学学習者のためのプラットフォーム

語学に関する疑問をネイティヴスピーカーが答えてくれるサービス

 

 

中国のAndroidのシェアは75%

まじかよ!

日本は半々。

 

このサイトで色々見れる!すげぇ!

http://www.kantarworldpanel.com/global/smartphone-os-market-share/

 

 

そして、中国には

 

GooglePlay がない。

 

まじかよ。

Google製のOS使ってんのにマーケットないのかよ。

(前はあったらしい。そして近々復活するかも。)

 

なので、野良マーケットを使う必要がある。

 

また、GooglePlayがないとプッシュ通知とかできないらしい。

Androidの仕組みわかんないけど。

 

それを解決するのにAmazonSNS!

BaiduPushをサポートしてるから。

Baiduといえばバックドア問題とかであまり良くないイメージが・・・

でも中国では避けられないらしい。

 

その他にも中国では

facebooktwitterなどがVPN経由じゃないと使えないらしい。

不便だね。

でも代わりのSNSとかがあるから不便ではないのか?

日本より中国の方が色んな情報に寛容かと思ってたけどそうでもないのか。

 

いやー自分の知らない世界の話聞くのは面白い。

ちょっと中国に興味が持てた。

 

それとAWSもそうだけどAmazonのサービスは把握しとかないといけないな。

使ったことないけど今後のスタンダードになりそう。

ってかなってるか・・・

 

勉強会に行くと勉強したい欲が出てくるから不思議。

 

 

次はスーツの似合う社長トランスリミットの高場氏。

 

では。