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

yashigani?.days

週刊少年ジャンプについてだらだら書きます

これからマネージャーになるエンジニアのあなたへ

こんにちは、新米ディレクターのid:yashigani_wです。 この記事ははてなディレクターアドベントカレンダー2日目の記事です。昨日はid:moretのそろそろ5年生なので右も左もわからない新卒のころの自分にアドバイスする - el cineでした。 私は8月にアプリケー…

ルールを作るアイツと破壊する私

IMO

個人的に、ルールは少なければ少ないほどよいと考えていて、必要があるときにだけ最低限のルールを設定すべきだとおもう。 なぜなら、多くのルールには必ず抜け道があって、全てのパターンで上手くいくようにルールを作ったところでどうせ運用でカバーみたい…

シン・ゴジラと4DX

シン・ゴジラを二条のTOHOシネマズで観てきた。ゴジラについては他にも良いエントリーが多くあり、ネタバレはしたくないので何も言うまい(ちなみに良い感想エントリーを探すにははてなブックマークの検索機能が便利である。iOSアプリを入れている方はアイコ…

筋の悪いコードレビュー

IMO

たまにコードレビューのしかたを紹介するエントリーを目にすることがある。その中でも反響があるものは実際によくまとまっており、なるほどと感心することもよくある。しかし、中にはコーディングスタイルやイディオム、ちょっとしたテクニックを使うように…

iOSDCにCFPを出しました

昨晩、同僚とiOSDCのCFPソンをしていたら盛り上がって2本応募しました。よかったら投票してください。 はてなブックマークを支える開発フロー ここ半年くらい、はてなブックマークのチームでスクラムマスターをやっているんですが、このチームでは高速にチー…

明日は金曜日

IMO

東京へ日帰り出張、疲れた体を新幹線のシートに預ける。「帰りの新幹線ではビールを飲むんだ」チーフエンジニアの教えである。共に帰ることになった同僚と弁当の封を開け、缶ビールのプルタブを引く。東京は何度行っても疲れるけれど、帰りの新幹線の雰囲気…

人の挨拶を嗤うな

IMO

挨拶がないことや挨拶もできないのかと怒る人がたまにいる。けど、そういう人に限って自分から挨拶しないという経験則があって、挨拶する側じゃなくて挨拶される側の理論だなと耳にするたびにおもう。唯一例外は学校の先生で、彼らは挨拶しろと怒鳴りつけて…

てんとまる

IMO

Twitterやめたら、インターネットに発信する機会がなくなってさみしいので久しぶりにブログを書くことにした。ちなみに、やめたというのは読んだり投稿したりするのをやめただけで、セルフブランディングを大きく毀損するのでアカウントは残していて、アカウ…

IMO

平日は5日あるんだから3勝2敗ならそれでいいじゃないですか.

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

Promiseを学ぶためにSwiftでPromiseを実装してみた話

この記事ははてなデベロッパーアドベントカレンダー2015の16日目の記事です.昨日は id:motemen の エンジニア寿司を支える技術 - Hatena Developer Blog でした. こんにちは.id:yashigani_w です. はてなでは定期的に開発合宿があり,好きな開発言語を試…

UITableViewでレイアウトの違うセルをどう扱うか #関モバ

iOS

毎月恒例の関モバ #8に参加しました. kanmoba.connpass.com 今回は,UITableViewで複数のレイアウトを持つセルをどう扱うかというトークをしました. speakerdeck.com 骨子としては,UITableViewで複数のレイアウトを持つセルを実装するとき,いくつかの方…

unwrapして値を棄てるときを少し小洒落たかんじに

たまにunwrapするけど,必要なのはその有無でそのままそれを棄てることがあります. こういうときです. if let a = some { print("some is .Some") } このままだとXcodeに,aを使ってないから_に変えろって怒られたりしてゲンナリ………オシャレ感ゼロです. …

ぼくのApple Special Event

ここまでで約1時間(WWDCの悪夢が蘇ってきた)— やしがに (@yashigani) 2015, 9月 9 エディーキュー出てこないでくれ頼む— やしがに (@yashigani) 2015, 9月 9 まじか…— やしがに (@yashigani) 2015, 9月 9 ウッ— やしがに (@yashigani) 2015, 9月 9 @yashigani …

関西モバイルアプリ研究会で「Swiftで自然数を作るっ」という発表をしました #関モバ

www.flickr.com 毎月おなじみの関西モバイルアプリ研究会で「Swiftで自然数を作るっ」という発表でライブコーディングをしました. 関西モバイルアプリ研究会 #5 (2015/08/26 19:30〜)kanmoba.connpass.com 書いたコードはgistで公開しています(少し長いので…

Lazy stored propertyについて発表しました #関モバ

この間の関西モバイルアプリ研究会#4でLazy stored propertyについて発表しました. speakerdeck.com Lazy stored propertyについて大まかな使いドコロと,テスタブルな設計をする際にこいつを使うと依存の注入に使いやすいのではないか,というアイディアに…

iOSアプリのコードレビューについて話しました #関モバ

関西モバイルアプリ研究会#2で「iOSアプリのコードレビューで最近気になるところ」という発表をしました. 関西モバイルアプリ研究会 #2 (2015/05/20 19:30〜)kanmoba.connpass.com コードレビューでよく指摘するようなことをまとめたのですが,まとめてみる…

Cocoa勉強会関西でお役立ちテクニック3連発という発表をしました #cocoa_kansai

先週ですが,毎度開催されている,Cocoa勉強会 #61でお役立ちテクニックを紹介しました. スライドはこちらです. 今回はこれというネタが無くて連発みたいなネタに走ってしまった… 次はなんとかいいネタを用意します. おもしろかった発表を紹介 熊谷友宏さ…

顕在化するmainBundleリスク

iOS

iOS向けのアプリケーションやライブラリで画像やローカライズファイルなどのリソースを使うとき,bundleという仕組みを利用します. bundleはアプリケーションやライブラリに組み込まれ,実行時に各リソースファイルとの橋渡しをします. 例えば,ローカライ…

Cocoa勉強会関西でSwiftの型について発表しました #cocoa_kansai

Swiftでコーディングしていると,型について色々と考えることがあります. 型の捉え方は学術的にも色々あるとおもいますが,このスライドは自分の経験から自分なりの捉え方なので,間違っていることや補足などあれば教えて下さい. スライドの補足 例に出し…

初めてエンジニア面接をすることになって準備したことと反省

photo by MDGovpics 技術面接を担当する機会があった. 今まで,面接されることはあってもする側になるのは初めて. 短い時間でよい成果を得るため,事前に色々と準備をしてから望むことにした. 最初に 面接といえば質問だ. 逆に言うと質問の集合が面接と…

SwiftでNS_OPTIONSスタイルのEnumを実現する

Swiftのenumは便利ですが,たまには使い慣れたNS_OPTIONSスタイルのenumを作りたくなるときがあります. 素朴にやるとこのように実装できます. /// My Options enum Options: UInt { case None = 0 case A = (1 << 0) case B = (1 << 1) } しかし,これでは…

Hatena Engineer Seminar #4で「はてなのiOSアプリとSwift」という発表をしました #hatenatech

2/7に開催されたHatena Engineer Seminar #4 @Tokyoで「はてなのiOSアプリとSwift」という発表をしてきました. 「Hatena Engineer Seminar #4 @ Tokyo」を2/7(土)に開催します! #hatenatech - Hatena Developer Blog 現在,はてなのiOSアプリ開発ではSwi…

switchとType Castingで安全なprepareForSegueを実装する

画面遷移時に実行されるprepareForSegue:sender:ですが,Objective-Cで実装するといいかんじに不安な実装が完成します. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqual:@"HogeSegue"]) { HogeView…

Swiftでマクロっぽいことをする

Objective-Cだと今でもマクロを使うことはあります. (ReactiveCocoaなんかも依存していますね.) プロダクトコードで使うのはできたら避けたいマクロですが,ビルド設定によって動作を切り替えたいときとかには結構便利です. しかしながら,Swiftにはマク…

CocoaPodsのPrivate Specsを作るときにしておきたいちょっとした工夫

外部に公開できないライブラリが増えてくるとPrivate Specsが欲しくなります. Podfileを丁寧に書けば依存関係を解決できますが,Private Specsを使うと依存関係の解決をCocoaPodsに任せることができるので,podspecを利用する際やPrivateなpodspecに依存し…

CocoaPods0.36をExtensionで使うときに出る警告を抑制する

App Extensionを実装する際,本体のアプリとコードを共有したいことがあります. コード自体をExtensionのターゲットに追加することもできますが,メンテナンス性や複数のアプリで使い回すことを考慮すると,Embedded frameworkとして実装し,各々で取り込む…

Optinalのmapがちょっと使いにくいから拡張してやった #swift

SwiftのOptionalにはmapがある. func map<U>(f: T -> U) -> U? 引数のfはT(Optionalで包まれいる値)を受け取ってUを返す関数を受け取って,fの返り値であるUをOptionalで包んだU?を返す関数です. 要は,if-letを使って明示的にunwrapしなくてもOptionalの構造</u>…

「記憶に残る風景」 #地元発見伝

「記憶に残る風景」 #地元発見伝 草津市, 滋賀県県道559号線 琵琶湖のまわり走ってたらなぜか唐突に現れる朽ち果てたクレーン. 地元の魅力を発見しよう!特別企画「地元発見伝」

SwiftのPropertyでObjective-Cのアレがしたい

overrideする Objective-CではPropertyはただのアクセサメソッドの自動生成だったので,overrideするのはなにも考えなくてもいいって感じだったけど,Swiftでは微妙に違う. 例えばUIScrollViewのcontentInsetをいじって常に上部にマージンを設けたいときは…

Share ExtensionでOpen URLするとかなんとか

iOS

注意: beta 5時点での情報です iOS8で追加される待望のApp Extensionですが,あくまでExtensionなのでContaining appを呼び出したくなることがあると思います. App Extension Programming Guideにもあるように,App ExtensionとContaining appとの連携にはS…

今日も一日がんばるぞい for iOSつくった

pic.twitter.com/M4nBoJTJ7S / http://t.co/Q2RoEON5KT #NEWGAME!— チキンとタイカレー (@yashigani) 2014, 7月 25 昨日の昼休み同僚の好感度を上げるためにNEW GAME!っていうクソ萌えマンガ読んでた. NEW GAME!めちゃくちゃ萌えて,とにかく最高という感じ…

著者近影

ヤシガニさんとビール pic.twitter.com/r0A2eUAa1W— 栗栖義臣 (@chris4403) 2014, 7月 18 職場の冷蔵庫に入る炎上系マイルドヤンキーな著者

2014夏マストバイなプロトタイピング本の紹介

iOS

photo by CannedTuna 最高のアプリを作るには実際にプロダクトを触ったユーザからのフィードバックが不可欠です. しかしながら,ユーザからのフィードバックはプロダクトが完成してからしか得ることはできません. モバイルアプリの競争が激しくなった昨今…

株式会社はてなに入社しました

7/1付けで株式会社はてなに入社しました( 15ヶ月ぶり2回目) モバイルアプリエンジニアとしてやらせていただきます. 株式会社はてなのアイオーエスデバイス向けアプリ,オレニマカセローという心持ちです. よろしくお願いします! はてな広告 このエントリ…

フェンリル株式会社を退職しました

photo by RelaxingMusic 6月をもって3年半ほど在籍したフェンリル株式会社を退職します. ふりかえり 入社当初は受託開発の部署に配属されたのですが,実績のわりには人数も少なく「えらいところにきてしまった」感があったことが記憶に残っています. 当時…

大学のイベントでありがたい話聞いてきた

昔いた大学の学部が設立10周年ということで素敵なイベントがあって,研究室の先輩であるはこべさんがしゃべるので見に行った. タダでピザとビールが振る舞われると思っていたら,いつの間にかキャンパスは全面禁酒になっておりビールは存在せず,ピザもわか…

WWDC大予想 #expectWWDC

はてなのエンジニアもWWDC 2014に参加します!皆さんもWWDCの予想をしてみませんか!! #expectWWDC - Hatena Developer Blog 予想します. ちなみにWWDCは今年も参加しません(参考) 公式beta testing serviceが華々しくローンチ TestFlightの買収もあったの…

家電

夏だし扇風機買った. 5sっぽい扇風機買った 真ん中のところがiPhone 5sのホームボタンっぽくて喜んでたけど,妻から一切の同意は得られなかった. 扇風機,なんだかんだで安いのは¥2000くらいからあったけど,安いのは全然文化的なデザインじゃないし,さほ…

著者近影

肉踊りを踊る著者の様子です 著者近影 pic.twitter.com/wJ1jhgWo9u— チキンとタイカレー (@yashigani) 2014, 5月 22

iOSアプリ開発というのを生業としているが,LINE文化圏とは遠い生活をしていて,その実情には疎い.しかし,世の中のリアルコミュニケーションはLINEに閉じて営まれているらしく,LINE文化圏に疎いとその活動に参加すらできない.自分の中でメッセージングサ…

Kyoto.なんかでWebKit APIについて話しました #kyotoasterisk

@hakobeさんに「今度Kyoto.jsをもうちょっと広げたKyoto.なんかっていうのをやろうと思ってるけど,発表者足りないからなんか話してよ」って言われたので,js界隈の人にウケるネタということでなんとかWebKitについて捻り出してWebKit APIについて話しました…

副業&リモートワークやってみた

photo by Paul Mayne ひょんなことから,知人より「アプリ作ってくんない?」とオファーがあったので,しばらくほいほいとやってました. 副業というやつです. しかも,開発は基本リモートでっていうんで,ちょうど流行に乗っちゃったりしちゃった感じです…

プレゼンするときに気をつけてるたった3つのこと

ここ一年間くらい勉強会で発表する機会を意識的に作っていた. 最近ちょくちょく「プレゼン慣れしてる」という反応を得ることが増えてきたので,「こうすればいい感じのプレゼンができる」という知見を共有させていただく. どれも簡単だし,たぶん次から試…

SKKやめました

俺はSKK辞めて人間に戻るぞーーーッ!!!ジョジョーーー!!!— チキンとタイカレー (@yashigani) March 30, 2014 SKKなんだかんだで3年くらい使い続けてたんですが,端末が新しくなったのを機にやめました. 基本的に今もSKK最高という心持ちなんですが,一般…

Remote Notificationのアラートをリセットする

iOS

プッシュ通知でおなじみのRemote Notificationですが,使用するときにはプッシュ通知を送っていいか確認するアラートが表示されます. アプリを普通に使う上では特に困りませんが,開発をしているとこのアラートをもう一度表示したい,ということがあります…

すごいH本読書会 in 大阪#16で発表した

すごいH本読書会 in 大阪#16で15章Zipperについて発表してきました. スライドはこちら. 記念すべき最終回は,最終回にふさわしくもくもくと練習問題を解く会となりました. 練習問題はスライドの最後にもありますが,こちら. Zipperを使ってBrainfuckイン…

Atom解剖してみた

Mac

解剖してみたってほどじゃないけど,Atomのパッケージをバラしてみたらおもしろかった. Squirrel.framework 使ってるフレームワークがおもしろくて,MantleとかReactiveCocoaはナウでヤングなiOSエンジニアにはおなじみのやつなんだけど,Squirrel.framewor…

おすすめiOS App情報です

iOS

pic.twitter.com/rK9PL4Xir5— チキンとタイカレー (@yashigani) 2014, 3月 6 pic.twitter.com/7v9wlPLOwA— チキンとタイカレー (@yashigani) 2014, 3月 6 pic.twitter.com/hgvrBiVjsV— チキンとタイカレー (@yashigani) 2014, 3月 6 pic.twitter.com/2Ptd52u…

OCMockでNSManagedObjectをstubする

NSManagedObjectのプロパティをstubしようと思ってめっちゃはまった. こんな風に普通にstubしようとしてもstubできない. // こんなNSManagedObjectのサブクラスがあるとする // @interface Event : NSManagedObject // @property (nonatomic, retain) NSDa…