ラベル インターン の投稿を表示しています。 すべての投稿を表示
ラベル インターン の投稿を表示しています。 すべての投稿を表示

2015年8月15日土曜日

Wantedlyインターン12日目〜最終日〜

おばんです、田中です。



俺はインターンを終わるぞ、ジョジョォー!!




ということで最終日でした。
ちょうど今日がアップルに審査を投げる日で、リリース日だったのでバグ修正とその他リファクタリングをしていました。
直しなどを行っていたのですが、今日が一番ビルドに時間がかかったひな気がしました。
直しなので一行二行書いた段階でデバッグをしたいということが多かったのですが、その度に20分
作業は思うようにいきませんでした。
しかしなにかが覚醒したのか今日はリファクタリングをしていて、複数のクラスに影響がある部分の修正で結構重かったのですがどこか見晴らしよく、見通しが立つ感じで作業を進めることができる瞬間がありました。
なにかレベルアップ音がなっていたかもしれません。
メンターの森田さんの修正する背中を見て、なにかを吸収したように感じました。それが少し出た。
その感覚が続くようになったらかなり良い!なので帰った後もその感覚を忘れずに作業に取り組んでいきます。

だいたい例えると「読める、読めるぞ...!」と、某大佐を思い出していただければだいたいあんな感じです。

しかし結局、少しデバッグが足りなかったりして挙動が確認できていないので、僕が今回実装していたDropbox連携のところは次回リリースでの組み込みとなりました。
組み込まれてくるのが楽しみです。
バージョンアップでなく、新しく申請するアプリの神聖なリリースに立ち会うのはすごくハラハラしましたww



お昼は社員の相川さんという方とご一緒させていただきました。Wantedly開始から四人目の人です。お昼は親子丼です。



相川さんはWantedlyでインフラなどをなさっていて、インフラのことを色々と熱く教えていただきました。
インフラって地味なイメージがありますが、やっていることは本当に基盤となる超重要なところで、それがパフォーマンスにつながったりする。そんな話を聞いて、だいぶイメージが変わってインフラのかっこよさとか華やかな部分を感じることができてとても楽しい時間でした。
言語にも詳しくて、ああ、好きなんだなっていうのをすごく感じましたw その人の話し方を聞いてるとわかりますよね。

あとは最近話題のDockerってなに?ということを質問したり。
あれはタスクマネージャなんかのプロセス一つ一つをコンテナという単位で区切っていくような仕組みのことで、一プロセスに一コンテナの環境を用意するのでそのプロセスに最適化されるところが良いそうです。
例えばサーバーなんかだとこれを動かすには環境としてあれも必要これも必要となりますが、それを最小構成にすることで立ち上げを早くしたり一プロセスに作業を集中させることでとても効率的なんだそうです。
曖昧な説明なのは、まだちゃんと理解してないからです!便利そうなので少しいじったりしてみたい。



リリース後と僕のインターン最終日ということで仕事終わりは飲みに!!
実は「最終日飲みに誘われるかな、まだかな」、って期待してたのですごく嬉しかったですww



でもリリース後の飲み会なんてまあデバッグ大会ですよ!ww
それも含めて楽しかったですがw
やっぱりお酒は美味しいですね、今日はさらに肉も美味しく感じたので最高以外の言葉が出なかった。
あとWantedlyはIT系には珍しくオタク色が薄いのでラブライブについて熱く語って布教しました。
その甲斐もあって、その素晴らしさの一端をお伝えすることができたようで凛ちゃんのLGTMいただきましたッ!!
めちゃくちゃやる気出るので二次キャラgifLGTM駆動開発を推進していきますこれから。



覚えておいて欲しいのは「好き」と「推し」はまた違うということです。
ここ大事。



そんなこんなであっという間の二週間。
今日ふと帰り際に寄ったトイレの鏡で自分の顔を見て気付きました。

「あっ!もう二週間か!!」


と。
それだけ充実してたってことですね、本当に終わったあとは一瞬でした。
疲れて感覚なくなってるところもあると思うけれど、仙台にいたらとてもできない経験をさせていただいて、本当にWantedlyさんありがとうございました。
チームの方々、誘っていただいたのもありがとうございました。何もしらない自分の面倒を見てくれて丁寧に教えていただけて、ありがとうございました。

Wantedlyさん本当に良い会社でした。
技術サイドからは、普通こんなにリッチな開発の仕方できないよ、と思うようなところも社員さん個人個人のスキルが高いので実装できてしまうという。技術だけでなくコミュニケーションや開発の進め方の部分でも。
中の人柄や文化もあり得ないほどの居心地の良さでした。
こんな世界もあるんだと、楽しみだし、希望が持てるし、頑張ろうと思いました。
もっとスキルを磨いて、もっともっと高みに昇りたい、そう思える二週間でした。
ありがとうございました。

2015年8月13日木曜日

Wantedlyインターン11日目

おばんです。
残すところあと明日1日です。
残タスクの容量も良い感じで、明日の仕事でうまくカタをつけられそうです!!
あとは細々としたところをどれだけ片せるかみたいなところもありますね。



今日はこの二週間のインターンの成果発表会をやりました。
なぜDropbox連携したのか、実際どんな機能を実装したのか、残タスクと今後の展開はなどよくあるパターンです。
なぜDropbox連携したのかということに根拠を持たせるために、メンターの森田さんのアドバイスで数字(データ)を少し拾ってきたりしたんですが、普段そんなことしないからそれで正しいのかわからず!
でも確かに、少し数字をつけてあげるだけで多少なりとも説得力みたいなのは出るかもしれないと、思いました。
「へぇー、そうなんだ」、みたいに思ってもらえると。
今後何かで発表する際はその手もアリですね。というか「そうしないといけない」レベルの話だとは思うのですが。



成果発表の他に、今やっているiOSプロジェクトの全体の開発構成についてなど話をしました。
MVVMのモデルを全体通して使っており、SwiftBondSwiftTaskをうまく利用しているのが特徴で、この規模のプロジェクトでこの構成をとってるプロジェクトもほとんどないのではないかという話。
聞いてくれていたのは会社の方々ですが、普段iOSの開発をしているわけじゃないとか、別のチームでやってますという方々だったので結構聞き入ってもらえる話だったんじゃないかなと思いました。
ただ、自分も特にSwiftTaskに関しては発表に向けた突貫工事みたいな感じだったので、細かい質問に答えられなかったのが悔しかったのでちゃんと勉強します。

自分では準備不足だと思っていたのですが、同じチームの杉上さんに褒めていただけたのでうれしかったです。
普段から発表には必ずネタを入れていこうというスタンスが功を奏しましたw
今日の発表、LGTMでした。(LGTM = Looks Good To Me.GitHubのレビュー後によく使われてます)





発表資料はSlideShareなどにあげたいと思っていますが、まだUpして良いか確認していないのでそれが済んだあとで公開します。
駄目でも差し障りのない技術部分に関してなどあげていこうとおもいますので、乞う御期待!

写真は今日のランチの焼き魚定食です。夜も0時を近くなってまいりましたが、お納め下さい。
明日の最終日も頑張ってきます。

2015年8月12日水曜日

Wantedlyインターン10日目

おばんです、田中です。
インターンも残り二日となりました。
自分の担当する部分もラストスパートです。たぶん。なにもなければ。



今日はなかなかにもくもくと作業をしていたのですが、メンターの森田さんとライブラリについてなどお話をしました。
とりあえずAwesomeSwiftTrendingSwiftRepositoriesは見ておくと勉強になるというアドバイスをいただきました。
AwesomeSwiftは文字通りすごいライブラリまとめみたいなものらしいです。
森田さんのSwiftyDropも載っているのでぜひ!
とりあえず仙台に帰ったらこのあたりを見ながら勉強します。



今日もまた以前と同じようにプロジェクトのちょっとコアな部分の修正をしていたのですが、その中で出てきた書き方に少し苦戦しました。
どこかというとクロージャを使ってクラス間で処理の移譲を行っているところでした。
クロージャを変数に入れてオブジェクト化し、別クラスのプロパティに渡してそのクラスの任意の場所でそのクロージャを発火させるという流れ。
これがどこで処理を保持していて呼び出しているのかが若干読みづらいかと思ったのですが、慣れると使えそうな考え方だなと思ったり。
なによりうまく書かれていたのが、その移譲するオブジェクトのメモリ管理。クロージャの内容が別クラスの方から元クラスで呼べるメソッドを呼び出すという中身で、オブジェクトの破棄に気を使わないといけないなと思ったけれど、自分が今まで知っていたdelegateやKVOによるメソッド呼び出しとはまた違うやり方が知れてとても面白かったです。
このあたりは特徴的だったのであとでまとめ直します。



明日はインターン最終日というわけではないですが、成果発表会を行います。
明日の17時くらいまでに実装できたところなどに関して話そうと思います!
ああ、その用意をこれからしなきゃw
ということで今日はこれまでですー、お疲れ様です。
あ、お昼にとうしょうめん食べました。
真っ赤なのが来た時は「うわあこれどうしようホンマ...とか思ったけど」思っていたより辛くなかったです、仙台の大河原の方が圧倒的にヤバい。美味しかったっす!


Wantedlyインターン9日目

おばんです、田中です。

進捗あります!!


今日は午前中にずっとやってきた大きめの作業が終わりました。
大きめというか、結構細かくリファクタリングや設計の変更が必要な箇所だったので、読みから書きが大変なところでした。
それがおわって、機能の追加が出来たのでひとまず胸をなで下ろしています。
これでとりあえず人に話す内容ができますw



午後からやった作業は細かい修正やバグ修正など。
いやぁ、いいですね、細々としたissueをザックザック潰してはプルリク投げてマージかけていく。
残タスクがブチブチと音を立てて潰れていくのは本当に気持ちいです、ふふふ。
ともすればどんどん降ってくるんですけどね!
そんなところが今日はとても楽しく感じました。

今日特に感じたのはgitの管理がスムーズにできるようになったこと。
昨日は神経使って疲れる、と言っていた(今日の作業がうまく回るところだったかもしれない)けれど、やらなきゃいけないところがうまく分割できていて二台同時開発がうまく活かせた感じでした。
「そっちのマシンでビルドしていて、こっちのマシンではとりあえずそっちのビルドがおわってから進めたいから、この機能をブランチ切ってやろう。stashしてmasterをpullしてpopしてブランチ切って作業をコミットして、ゴニョゴニョゴニョ」

技術的に新しく知ったのはInterface BuilderでViewのlayer要素を変更できるということ。
例えばborderColorをつけたいとか。
User Defined Runtime Attributesの部分に設定を加えていくと変更できるようですね。
実際このくらいの処理であればコードでも一行で済むので、それでも良いと思っていたのですが、コードを極力汚したくないとかであればこれが使えそうです。



そして今日は待ちに待ったpotatotips勉強会があったので別エントリでそれに関しても触れていきます。
このエントリはここまでー。
今日もお疲れさまでした。
木曜にインターンとしてこれまでの進捗報告会があるので、明日はそれに向けてラストスパートをかけていきます!

2015年8月11日火曜日

Wantedlyインターン8日目

まとめのストックが溜まりすぎてるので頑張って書いていきます!
昨日とか今日とか一昨日とか時系列が大変なので文体は「今日」に統一します!



おばんです、田中です。
今日も1日生き延びた!
進捗があまり芳しくないけれど...orz



この規模のプロジェクトは見たことのないエラーがいっぱい出る。
環境によるものだったり、git周りのことだったり。
そうすると、個人でやってたときに出ていたエラーもどんなものか見当がつきやすくなったように思います。

ただ今日は脳のメモリが少なくて手がよく止まってしまいました。
二台開発できるけど複数ブランチを二台で行き来するとスワップが多くなって作業スピードは落ちる。
でもビルドに時間がかかる。
人とコンピュータの間のデータのやり取りがスムーズじゃない。
しかも未コミットのものを扱ったりgitで色々していると余計に神経使う。
普段からこれくらいの忙しさをやって鍛えてたらよくなるかなぁ。とか思っていました。



そして今日は普段より遅い時間まで残って作業してました。進捗やばいからね!
仕事以外のことを社員さんに尋ねたりも出来たので遅い時間良い。
というのも、SwiftTaskというライブラリの使い方がどうにもわからなくて質問しました。
反省しないといけないんですが、質問の仕方が悪かった。どこからなにを聞けばいいかもわからなかったのだけれど、主語もなく自分はこうなのかと思っているのだけれど、みたいなことをひたすら喋るというしょうもないことをしてしまいました。主語を特定してから聞ければよかった。

しかし、理解まで付き合っていただいてとても助かりました。なんとなくわかったときは脳汁が溢れて楽しかったです!!
こっちに来てずっと思ってるのがこの凄さを友達にも伝えたい。共有したい。友達もまたインターン行ったりしてパワーアップしてるだろうからそれも教えて欲しい。そんな風に思っているので、帰ったら勉強会とかやりたいです。



細かい技術の部分に触れてない!
今日はビルド時間の削減とかを目指していたりしたんですが。
というのも、一度クリーンビルドすると20分も一回のビルドに時間が掛かるから。

20分ですよ!!!

ありえますか!?
どうにかこれを改善したくて、Build Settingを変えたりSchemeをいじったりしたのですが、うまく効果が出ず。
一説によるとextensionを減らすと改善するという話も聞いたのですが、さすがにそこまで手をつけられず。
どうにかうまい方法を見つけてヒーローになりたいところです。

というところで今日はここまでです。
おつかれさまでした。

2015年8月10日月曜日

Wantedlyインターン7日目〜休日編〜

おばんです、田中です。
今日は夕方までコード書いたり、ふらふらしたりしていました。

ふと思ったのですが、東京はすごいところですね。
なにがすごいって道行くカップルのべたべた度。
普通に公共の場なのにあの距離感はすごく、価値観が違うんだなーと思ったりしました。
うらやまけしからん。



さて、昨日はブログのまとめなどであまりコードが書けなかったので今日はがっつり時間をとりました。

開発

先週仕事で見かけたライブラリを使って自分で設計とライブラリの練習がてら、Qiita APIを取ってきてごにょごにょするクライアントみたいなのを題材に今日はもくもくしていました。

  • Bond使ってみた、使えた
  • SwiftTask使ってみた、まだわからない
  • Qiita APIからはユーザーのContribution数が取得できない
  • 通信して取ってきたStringをBondでUILabelに代入するとき、自動で複数行にならない問題
  • shell script invocation errorというエラー
    • いろいろググってPodの入れ直しやCocoaPodsの入れ直しなんかをしてみたけれども直らず。
      仕方がないのでプロジェクトを作り直して対処しました。
      結構イヤ〜な感じのエラーだったので、なにかご存知の方いらっしゃいましたらご教授いただけると大変助かります。

    今日はこんな感じのところまでとりあえずいきました。
    最近感じるのは開発スピードが遅くて良くないなってことです...。
    設計とかどんな風にやるべきかみたいなテンプロートとなるような部分の素振りが足りないのだと思うので、精進します。



    ちなみにリポジトリはgithubに公開でおいてあります。
    https://github.com/ktanaka117/SwiftQiita



    ふらふら

    夕方までの開発が終わったあとは少し本屋とかをふらふらしました。
    最近小説とかの本を読んでないなー読みたいなーと思いつつ、時間があればコード書いて勉強したいという気持ちもありつつ...。
    むつかしいです。
    技術書にしてもそのコーナーに行くとあんな技術もこんな技術も楽しそう!みたいな感じで、手がおいつかないw
    優先順位をつけるっていうのが必要ですね。

    本屋をふらふらして技術書コーナーで本を物色していたら知らないSEを名乗る男性二人から声をかけられました。
    「自作PCを少し始めてみようと思うんですけど、やってたりしますかー」という感じで。
    パーツ積んでてまだ組んでないんですよアハハーとかいいつつ、ちょっと新鮮でした。
    本屋の技術書コーナーによく行ってて考えるのですが、このコーナーにいる人はみんなエンジニアかそれを始めようとしている人なんだから話をしてみたいなー!ということ。
    今日はそれが初めて叶って嬉しかったですw

    それと小説読みたいんだけど、自分の好きなタイプの本がどれなのかわからないというのをふと考えていたのですが、ありました、そういうの。



    コンシェルジュ、そういうのもあるのか。
    今度お願いしてみたいですね。入間人間とか好きなんですけど、とかそんな感じでw



    そして今日のメインイベント。

    ラブライブ The School Idol Movie

    みちゃったんですよ!!!!
    念願叶ってやっと見にこれました。
    もうテンションあがりすぎて、変なテンションになってました。
    みなさんすみません、自分でもわかってましたが多分キモかったです。
    でもそれくらい特別でした!!



    色紙は真姫ちゃん!!
    真姫ちゃんかわいいよ...かきくけこ...。
    真姫ちゃん特に好きだから来てくれたことに運命感じる。

    アニメとか見ていて本当に影響しそうだなと思ったのは久々で、CLANNADぶりかもしれないという感じ。
    泣けた。
    映画終わったあとの館内の一体感を若干感じました。
    ラブライブに出会えてよかった。

    仕事頑張ろうって思いましたし、こういう感動できることをやっていきたいなって...ね...。
    僕もラブライブで出てきたアニメーションを再現してみたりとかしてみよう。



    明日からまた仕事が始まるので、今日のこのモチベーションをもっていきます。
    暑苦しいかもしれない。

    2015年8月9日日曜日

    Wantedlyインターン6日目〜休日編〜

    おばんです、田中です。
    今日はお仕事がお休みなので色々ふらふらしたりしてました。



    動きのカガク展



    これに行ってきました。
    正直に言って展示ものって見てもそんなに楽しくないものだと思っていたのですが、これはめちゃくちゃにおもしろかったです。
    表現方法や実装方法について考えるのも面白いですし、アイデアがそもそも自分とは考える次元が違うということ認識するのに良かったです。

    これは是非行ってみるべきイベントでした!

    ラブライブ

    買ってしまいました。チケット。


    仙台でも見れるのだけれど、なんとなくタイミングが合わなくて。本当にずっと見たかったのですが。
    ちょうど良い機会なので明日の分のチケットを早めに手に入れておきました。

    パンフレットも見る前に確保。
    明日見終わるまで見ないぞ...!!
    もう明日は号泣する予感しかしません。最高の夜にします。




    楽天カフェ

    その後はブログまとめやコード周りで振り返りをしたかったので作業場所として楽天カフェに行ってきました。
    さすが楽天なのかはわからないですが、MacBookを広げて開発作業をしているっぽい人が結構見受けられました。
    カフェとかで開発しているなこの人っていうのがわかると、その人と話をしてみたくなるのですが、シャイなので今日もやらずにおわりました。w
    ちょっとブログ書きが思っていたよりもかかってしまって開発の方がほぼおろそかになったので明日ずっと作業しようと思っています。





    夜のデザイニウムOB+α会

    長期のインターンとしてお世話になっている会津若松のデザイニウムさんのOBの先輩方と飲みに行く流れとなったので行ってきました。
    ざっくばらんに、今後のキャリアについての話や最近流行りの開発についてなど話をしていました。
    美味しいお店を紹介していただいたので、料理が美味しかったです。
    みなさん元気そうで良かったです、というのと以前と比べて、自分が若干ながらも話に入っていけたのがとても感慨深かったです。


    今日も飲んでしまいました。
    厚揚げと究極のTKG(卵かけご飯)!!
    この二つが美味しすぎました。
    なにが美味しいって、どちらにも使われているカツオ節。
    これの味がしっかりついていて美味しかった!
    厚揚げには間にネギが挟んでおり(TKGも)、ネギとカツオ節、そして醤油の相性が完璧でした。





    iOS系の会話だとRealmがまだやはり不安定でとか、Reactiveとは?という話で最近のBondの話などえおまじ得ながら近況報告的にやりました。
    やはり先輩方と比べてまだ全然足りないと今日話をしていて思ったので、今はやはりコードを強化するフェーズなのかなと実際に感じました。




    今日も適当にふらふらして美味しいもの食べてという感じでした。
    いやー、今日も楽しくて良かった。
    明日はラブライブに本気で取り組みます。
    あ、あとコード書きも。
    もう限界なので寝ますみなさい。


    2015年8月8日土曜日

    Wantedlyインターン5日目

    こんにちは、田中です。
    5日目の分をまとめる時間がちょっと取れなかったので6日目に更新しています。

    昨日は仕事終わりに六本木のバーというシャレオツでシティーボーイなところに社員の方々に津れて行っていただきました。


    六本木の雑居ビルの中にある隠れ家的バー。


    店内の雰囲気はこんな感じ。



    初めは白ワインと三種のチーズ盛り合わせ。





    白ワインは飲みやすかった。
    このワインはニュージーランドのワインだそうで、ニュージーランドのワインは外れが少なくどれも美味しいとバーテンさん談。
    チーズは真ん中の青カビが味と風味がしっかりしていておいしかったです。
    そして先日からの飲みの流れでなんとなく掴んだんですが、洋酒のスタートは白ワインが良いっぽいということ。飲みやすいのが多いからかな?ちぃ覚えた。


    ざっくばらんに開発の話、女性やお酒に関する話なんかをしつつ、美味しいお酒をゆっくりと飲みながらの楽しい大人の時間が過ぎて行きました。







    とても素敵な夜をありがとうございました。



    それと4日目の分であまり技術について触れていなかったのでその繰越分も含めて今回は技術部分も軽く触れていきます。

    Swiftについて

  • ブロック分には[unowned self]
  • String, NSString, NSURLなんかのpathExtensionプロパティでファイル形式がわかる
  • Unwrapの使用をできるだけ避け、Optional Bindingでnilチェックする
    • ただしUnwrapするかしないかはプログラマに委ねられる。明らかにnilでないところであれば使っても良い。
  • initとclosureの中以外でselfは使わない

  • 今いるプロジェクトでは大まかな規約はGitHubのswift-style-guideに則っています。
    よくまとまっていて、英語ではありますが平易でコード部分が多いのでぜひ目を通してみてください。
    僕も改めて目を通してみます。


    Git(Hub)について

  • git co .で不要な変更を削除
    • 僕はgit stash, git stash clearでやっていたのですが、用法としてはgit co .の方がシンプルだし正しそう。
  • git stash, git stash pop
    • git stashはコミットしていない変更点を一時的に退避させておくコマンド。git stash popで退避を戻してきます。これがcode signing周りでとても便利でした!個人と会社で使っているcode signingが違う場合にそれをgitでやりとりしていたりするとコンフリクトの元だったり、よからぬことが起こります。が、これを使うことでgit stash, git pull origin hoge, git stash popとすることでcode signingの切り替えをいちいち行わなくてすみます。カチャカチャッ、ターンッ!って感じのノリでとても気持ち良い。
  • 特定ブランチでの作業が長く続く場合は定期的にmasterをマージしながら作業を進める
    • 作業ブランチがリモートのマスターと乖離しすぎることを防ぐため。これをしないとコンフリクトの元になる可能性もある。
  • GitHub上で現在作業中のブランチ名の頭には[WIP]キーワードをつける
    • これはチームの文化によるところですが、例として[WIP] Post a file to HOGE、みたいな感じでチーム内の他の人にもどこに手をつけているのかがわかるようにします。WIPはWork In Progressの略。


    その他

  • CocoaPodsのバージョン違いに注意しよう
    • CocoaPodsでpod installしようとしたらエラーが出て、原因はCocoaPodsのバージョンが他の人と違うことでした。これはGemfileをプロジェクトのルートディレクトリにPodfileと同じように置いてBundlerを使ってbundle exec pod install経由で行うことで回避する。
  • MimeTypeという概念
    • AWSのS3を経由する処理をするとき、今回はファイルをアップロードする際にファイルタイプを指定するのに使うものらしいです。多分ウェブ系の方の知識かな?と思いつつそのあたり触るときは思い出せるといいな。
  • 次に買うMacはMBPのメモリ16、CPUはCore i7にしよう
    • 現在Mac二台開発体制をとってますが、自前のMBAと会社のMBPとでマシンスペックの差によるビルド時間の違いをすごく感じました。次買うときは現行よりハイスペックに。
  • Skitch便利


    • こんな感じでスクショを取ってさらに矢印つけたりコメントつけたり枠で囲ったりできる。サクサク。ちなみに画像は下で書いているDashのセッティング中の画像。
  • Dashをおすすめされたので使ってみます



  • 最近飲んでばかりだって?
    お酒が美味しいのが悪いんです。
    いえ、美味しいお酒は素晴らしいです。
    人を恨んで酒を憎まず。仙台に戻ったら抑えます。

    今日も今日で遊んだり少しコード書いたりしているのでまた後ほどまとめます。
    この記事はここまで。

    2015年8月7日金曜日

    Wantedlyインターン4日目

    おばんです、田中です。

    バアアアアアァァン!!!



    二台開発 is ぶるじょわじー。
    自分の開発作業が実機転送が必要な部分が多くて、ビルドに時間がかかりすぎる!という問題を抱えていたのですが、Wantedlyさんのお心遣いによりMBPを支給いただきました!
    一台でビルド中にもう一台で開発を進めるということができました。
    二台をうまく活用するためにフル活動できるのが最高の気分でした。
    二台目の環境構築も、最近慣れてきたので予想よりすんなりできたことに自分の成長を感じました。

    それとWantedlyのビルは大きな窓ガラスがあるんですが、そこにミッション・インポッシブルな窓があったという発見が個人的にツボです。



    執務室の窓から綺麗な雲と虹が見えたので良い日でした。






    さて、今日は勉強会行って帰りが遅くなったので会社であった技術系の話はあとでまとめるということで省きます。
    今日行った勉強会はこれです。



    前々から名前を聞いていたRettyさんのオフィスの会議室に潜入してきました。
    もくもくiOSなんですが空気を読まずに以前から作っているMacアプリをもくもく作っていました。
    MacはiOSと若干文化が違い、UI要素がlayerベースじゃなかったりと、新たに学ばなくてはならないことが多かったのでStoryboard上にボタンを置いたくらいの進捗しか出なかったのですが(言い訳乙)、もくもくと集中して英語の文書を読めたのでとても良い時間でした。
    参加者の皆さんも濃いキャラクターで、優しい方々でした。
    他の方々のやってることがすごすぎて、良い刺激となったし、良いつながりを得られました。
    iOSやっぱり面白いですね。また参加したい勉強会でした。


    勉強会後は懇親会でした。
    さすがRetty。良いお店のチョイスでした。
    ワインの美味しい洋食屋さん。(名前見てない)



    白ワインによく合う魚介と野菜の料理。
    とうもろこしベースのキッシュが甘くておいしかったですし、イワシやタコのマリネは白ワインと一緒に食べると良い風味が強調されて上品な味わいでした。



    後半は赤ワインで、またそれに合う肉料理の数々。







    特に牛すじ煮込みがおいしかった!
    ガーリックフランスの一切れが良い意味でボリューミーで、牛すじと一緒に食べると良い混ざり方をして口の中が幸せでした。

    美味しい思いしただけで終わらず、料理も趣味の一つなので帰ってから自分で作る料理にも味を再現するように試行錯誤していきます。
    通な感じのお店だったのでRetty侮りがたし、侮ってないですが。Retty使おうかな。


    今日は飯テロ成分多めでエンジニア要素あんまりありませんでしたが、明日からはまた技術についても軽く触れていきたいです。
    それではお休みなさい。

    2015年8月6日木曜日

    Wantedlyインターン3日目

    おばんです、田中です。
    今日も一日まとめるぞい。
    ちなみに進捗はありました。
    Dropboxのディレクトリから画像ファイルを直接取ってきてイメージを表示する、みたいなところ。

    今日のトピックは三つ。
    • Swiftについて
    • Githubについて
    • Wantedlyについて


    Swiftについて

    Swiftに関する新しい気づきは三つ。
    • lazyは値が参照されるまで生成されない変数
    • これはこちらを参照しました。
      lazyって何? - Swiftサラリーマン

    • unownedとweak
    • 循環参照を避けるためにweakを使うのはObjective-Cでもやっていましたが、swiftにはunownedが追加されたので、その違いを知りたかったのでした。
      参照したのはWantedlyの杉上さんの書いたこちらの記事。
      Swiftの循環参照問題におけるunownedとweakの使い分けについて

    • backgroundの処理には気をつけよう
    • 画像を取ってくる処理で失敗しました。
      取得してきて、画像を表示するかどうかの確認画面へpresentViewController()する、みたいな処理を書こうとしていて、background処理で画像が取得できていないのに画面を遷移しようとして落ちたりしてました。
      知ってはいたけど気づかなかった。気をつけてやらないといけないですね。


    Githubについて

    実際にコードを書いてレビューをいただくフェーズに入ってきました。
    ひたすらレビューに返信してコードを直す、レビューに返信してコードを直す、レビューに返信してコードを直す...ということをガーッとやっていたら、かなり集中して作業ができてとても楽しかったです。
    実装方法や技術的議論もできたので充実しまくりです。レビューいただいた森田さん、ありがとうございました。

    ちなみにインターン中メンターとしてついていただいてるのが社員の森田さんです。
    ライブラリ開発などを個人的になさっていて、morizotterの名前で活動なさっています。
    TouchVisualizerなどの方で、GithubのSwiftタグ日本地域のスターランキング10位にも先日選ばれていました。


    Wantedlyについて

    今日はランチディベートと会社紹介がありました。

  • ランチディベート

  • Wantedlyでは二週間に1回ほど、社員全員でお弁当を食べながら特定の議題について社員同士で意見交換をして最後発表するというランチディベートの文化があるようです。
    今日は6グループに分かれて「国は必要か」という議題を話し合いました。
    うちの班は「上位概念や敵対関係の登場が共同体を一つにする」みたいなことを話しました。
    例えば日本の歴史で言えば江戸、明治あたりで外国の存在が日本を一つの国にしました。
    例えばスターウォーズでは帝国軍の存在がその他を一つにしました。
    というような例えで話を進めていき、結論として国という概念は必要なくなるかもしれないが、それは今年末に公開されるスターウォーズ エピソード7の映画を見て、その後どうなったのかを乞うご期待!
    なまとめをしましたw

    ランチディベートのまとめと発表はインターン生がやることになっているのですが、自分より後にきた人がいたのでその人が発表することになっていました。
    自分もガンダムとかスタートレックに例えながら発表したいなーとか思っていたのでちょっと残念でした。残念でした!

  • 会社紹介

  • 代表やリーダーの方々から会社の紹介についてお聞きしたりざっくばらんなお話をさせていただきました。
    Wantedlyの歴史や方針、今後の課題などについてです。




    写真は初期から、特に技術でWantedlyを支えてきたCTOの川崎さん。
    川崎さんにはWantedlyの技術面や方針について絵を使いながらわかりやすく教えていただきました。

    その他の方々からもお話をいただき、特に特徴に残ったのはインセンティブと金の話。
    Wantedlyでは企業と人との良いマッチングを目標にしているのであって、金がすべてということではない。
    掲げる目標から、成果報酬型の採用が決まったら中間料を取るという形で起こりがちなミスマッチをなくしていくという方針なのだが、その方法として良いサービスを作ることと金儲けのベクトルが衝突しないようにうまくコントロールしていかなくてはならないというお話でした。
    例えば広告を出すというマネタイズ。SNSやウェブでありがちだが、ユーザー体験を明らかに悪くするので、これと同じようなやり方ではよくないということ。
    あくまで良いサービスを作ることでユーザー体験をよくしていき、そのためには具体的な数字でシミュレートしたり、長いレンジで先を見通し、投資を行っていくことが重要なのだそうです。
    このあたりは単純にエンジニアリングなどを勉強してくのとはまた違った観点の話なのでとても刺激的でした。


    今日のまとめはこんな感じです。
    振り返ると写真が少なかったので夕飯に食べたトマトリゾット画像を貼って飯テロします。



    おやすみなさい。

    2015年8月4日火曜日

    Wantedlyインターン2日目

    おばんです、田中です。
    二日目、まとめていきます。
    まず初めに昨日撮り忘れたThe World。



    ここの会議室は時間が止まるんでしょうか。
    デスマとかだったらすごく欲しい会議室ですね。
    重い空気とかそういう意味で時が止まるとかだったらご遠慮願いたいですね!(`・ω・´)

    そんな状況だったら


    過程や…!
    方法なぞ…!
    どうでもよいのだァーッ

    とかなる時も、Wantedlyであるのか無いのか僕はまだわからないです。



    さて、今日やったことは大きく三つでした。
    • 他アプリとのファイルのやりとりについて
    • コマンドラインについて
    • Git(Hub)の使い方について


    他アプリとのファイルのやりとりについて

    主に現状はDropboxとのファイルのやりとりについて、まずはわかりやすく画像のやりとりについて調べて実装にも入りました。

    機能面としてはDropboxからデータを取得してくることとDropboxにデータを保存するの二つを実装する予定です。
    Dropboxからデータを取ってくることに関してはDBChooserというフレームワークがDropbox公式から出ていたのでそれを使って実装できそうです。

    DBChooserを使うとこんな風なUIが数行で実装できて、ファイルのリンクとかを返してくれるので超お手軽な感じでした。


    その逆のDropboxへデータを保存する方法はiOS8から追加されたApp ExtensionのShare Extensionなどを使って実装できないか調べながら検討しています。
    どちらも実装完了してまとまったら、WantedlyはQiita駆動開発らしいので別エントリとしてQiitaにアップしようと思います。

    どんなUIで実装するかなども検討しています。
    他アプリ18個を参考に、実際に触れてみてどんなUIにするか検討しています。
    見ていると大体の流れというか、実装方法も見えてくるので勉強になります。
    普段使っているアプリも「こんな機能あったんだ!」と、意外とよく見てないことに気づきました。


    コマンドラインについて

    bash で git コマンドのブランチ名などを補完するには
    上記を参考にgitを扱いやすくしました。
    逆に今になってまだやってなかったのか!というレベルではありますが、やってませんでした。
    branch名とか長いとミスタイプしそうなものですが、タイピングの練習だ!くらいに思って今までは律儀に全部手書き職人してました。
    横について教えていただきながら環境を整えていたのですがコマンド覚えてなかったり、viとかの使い方がおぼつかなかったのでこの辺も今後慣れていかないといけない。
    .gitconfigを少しいじってエイリアスを登録していったりするのも教わったので今後使いやすいようにカスタマイズしていきます。



    Git(Hub)の使い方について

    • git commit --allow-empty -m ""で空コミットができる
    • git add -pでステージするファイルを確認してコミットする
    • issueのリンクをブランチのトップに貼るとissueとブランチがひも付けられる

    git add -pは特に重要でした。
    code signing周りで会社のと自分個人のとで違かったのですが、自分の環境でやるには自分のcode signで実行してやる必要がありました。
    なのでそこの差分はコミットしない方向で進めるなくてはなかったので重宝する機能でした。
    git add <ファイル名>でファイルごとにステージするなどは今までも行っていたのですが、プロジェクトファイルに関する変更が細かく見れる点でこのコマンドの方が良かったです。



    作業はこんな感じでした。
    今日もとても充実した一日で学びが多くて楽しかったです。

    ただ一つだけ不満があります。
    それはXcodeのビルドが遅いということ!!
    プロジェクトが大きいのでたった数行の変更やクリーンビルドすると、少なくとも15分はビルドにかかるので待ちが発生することです!
    Swiftプロジェクトの弱点ですね...。早く速くなってほしい。

    「どう回避したらいいですか?」と社員さんに聞いたところ、





    「まずMacを二台用意します」






    うん?(՞ਊ ՞)??



    という返答があったのを今日のハイライトとしてそろそろ休むことにします。
    お疲れ様でした。

    2015年8月3日月曜日

    Wantedlyインターン1日目

    おばんです、田中です。
    Wantedlyインターン1日目が終わったのでまとめします。


    僕は日頃から愛してやまないSwiftによるiOS開発要員として、新規のメッセンジャーアプリに機能追加をしていく任に就きました。
    Wantedlyのミッションは「シゴトでココロオドル人をふやす」ということですが、そこを助ける形で、社内外問わず立ち上がったプロジェクトを成功につなげるようなメッセンジャーアプリを作っていきます。
    それにつける機能はどんなものが良いかを考え、実際にこの二週間でその機能を実装していくという感じです。
    今日やったことは会社の説明をしてもらったり「新機能を考えること」と「すでにあるプロジェクトに慣れる(コードを読んでいく)」ということでした。


    今あるコードについて

    まず使っているフレームワークやライブラリの数がすごかったです。
    その数なんと49!!
    とてもすべては追えないのですが、その中で特に特徴的で便利だと思ったのがBondでした。
    MVVCモデルで開発が行われていたのですが、このMVVCはModel-View, View, Controllerのことで、自分が普段行っていたMVCモデルとは違うものでした。
    このMVVCがBondで活かされるのですが、Model-ViewというViewの状態を保持するクラスがあって、UIの変更(テキストの代入)などをあらかた自動でModel-Viewに保持させておけるというものでした。
    そのModel-Viewを元にViewが変更されたりします。
    詳しくは公式や入門記事を読んで欲しいのですが、TextViewの変更やButtonのイベント受け取りなんかも簡単に取得できるようです。
    これは関数型のアプローチを取り込んでいるらしく、Swiftらしい部分です。
    公式のDelegateをどんな風にラップしてるのかとかがとても気になります。あとで読んでみます。


    新機能を考える

    アプリの開発体制はベンチャーらしさという部分だと思うのですが結構見切り発車でガンガン開発している様子で、思いついた機能を次から次に追加していくという感じに見受けられました。
    こんなターゲットがもっと便利に仕事するにはこういう機能があれば良いだろう、そうしたらその機能のUIはどんなものがいいか他のアプリも調べて作る。そのサイクルがより直感的というか、もちろん前例を探すというところはあるのですがチームで良いと判断したらGoGo!というところが素早くて良かったです。
    自分もパッと思いつくアイデアをいくつか出し、それを社員の方に評価してもらって少し変わり種で良いと思うものも出てよかったのですが、より目先で必要な作業を実装することにしました。技術的チャレンジも大きい実装だったのでそれも楽しみです。
    ガンガン作っていって余裕を作れれば他のアイデアも作りたいです!


    社内の雰囲気

    社員の方々が良い人ばかりでした!!
    こんなに積極的に話しかけていただけるとは思わなかった!!
    すごく嬉しいです。コミュニケーション。

    コミュニケーションといえば開発におけるコミュニケーションに関してもこだわりがあるようでした。
    自社開発のメッセンジャーやgithubをフル活用して、チーム内で納得のいくようにしっかりと議論していくスタイルでした。
    はっきり言ってエンジニアとしては最高に楽しい環境です。議論って楽しい。

    あとは何と言っても自分からすると神々のような人々と一緒に開発できるこの幸せ。
    以前からQiitaやGithubで見かけていたあのアイコンの人に直接教えてもらえるなんて夢を見ているに違いないです、きっとそうです。
    もっと出力あげて、明日からはもっと速度あげます。

    オフィスおしゃれだし。






    そして仙台市民としては見逃せないのがこれ。


    ゴゴゴゴゴゴゴゴゴゴゴゴゴ





    各会議室にスタンドの名前がッ!!!


    これは社長さんの趣味らしいんですが、最高に『ハイ!』ってやつだアアアアア!
    The Worldもあったのを確認したんですが写真撮るのを忘れました。明日撮ってきます。

    とりあえず今日はこんなところです。また明日。