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

cockscomblog?

cockscomb on hatena blog

子供が生まれました

本日午前11時に、僕と妻の子供が生まれました。予定日を10日ほど過ぎた、3,700グラムの男の子です。日付が変わった頃から陣痛がきて、それからあれよあれよという間に産まれていました。今はただ妻と息子の無事をありがたく思います。 結婚してからおよそ1年…

年末年始に飲み過ぎないために

諸君は酒が好きだろうか。筆者の場合は少しくらい、好きである。酒を飲んでもいいことなどない。僅かに楽しいような気分になるばかりで、だんだんと頭がボーッとしてきて身体もダルくなり、ひどいときには周囲の人間にまで迷惑をかける。しかし、よく冷えた…

Swift 3 の private と fileprivate

おはようございます。バットマンです。PlayStation VR でバットマン:アーカム VRを遊んだところ、現実とゲームの区別がつかなくなりました。ヘッドセットを外した後も、手がオブジェクトにめり込むんじゃないかと錯覚するようになった。 ところで Swift ピ…

あなたの知らない UIKit の世界 — UITableView に UITextView を置きたい

UITableView の見た目で様々な要素を表示しつつ、その一部として UITextView を使いたい、という需要があると思う。最も身近な例は標準のメールアプリである。 これは UIKit の API を駆使することで実現可能である。本記事ではこれを実現する方法を通して、…

Swift の Nil Coalescing Operator でコンパイルは遅くなるか

趣味のウェブブラウジングをしていると、Swift の ?? (nil coalescing operator) がコンパイルを遅くするのではないか、といった話題*1を見かけました。この演算子は、左辺の Optional<Wrapped> 型の値が Optional.none である場合に右辺の値を返すというもので、直感</wrapped>…

UIButtonの画像の位置を変えたい

UIButton の画像の位置を、タイトルの左側じゃなく上側や右側にしたい。画像が左側じゃないボタンのモックを見たとき、どうやって実現するかいつも少し悩む。ということでいくつかのアプローチを検討したい。 drawRect(_:) など UIButton は var titleLabel:…

マツコの知らない State Restoration の世界

慣れない街へ出かけるとき、電車の中で目的地までの道のりを「地図アプリ」で検索しておいて、駅を出てから地図を見て移動したことはありますか。あるいは「ネットショッピングアプリ」で欲しいものが見つかって、衝動買いするにはちょっと高価だったときに…

Swift 2.2

寒さも和らぎ、日によっては春の訪れを感じさせる今日この頃、いかがお過ごしでしょうか。春といえば Swift です。Swift は春と秋に、まるで衣替えのように大きなリリースがあります。2016年の春と予告されていた Swift 2.2 は、おそらく来週には正式にリリ…

try! Swiftに参加した日記です #tryswiftconf

先日のtry! Swift Conferenceに参加した。try! Swiftは、日本におけるモバイルアプリのカンファレンスとしては間違いなく過去最大規模であり、かつ最も国際色あるものだったように思う。しかし誰もが繰り返し言っているように、その運営は極めてスムーズであ…

UIControlにOptionSetTypeで状態を追加する

新成人のみなさん、おめでとうございます。大人になるのは難しいことだけど、自由に自分の人生を歩んでほしいと思います。 UIControlState UIControlにはvar state: UIControlState { get }というプロパティがある。これはすべてのUIControlの状態を示す。UI…

Swiftを使って型付けされた画面遷移がしたい

皆さん今朝はどんな夢をみましたか。今日は私の初夢を紹介します。 prepareForSegue iOSアプリを開発していて、特にStoryboardを利用して遷移を作るとき、往々にしてそのコードは不完全になる。 ViewControllerの遷移をするときには、次に表示されるViewCont…

Swiftにおけるclassとstructの使い分け

新年あけましておめでとうございます。 class, struct Swiftにはclass (class)の他にstructure (struct)があり、どちらもよく似た機能を提供する。しかしそれぞれ参照型 (reference type)と値型 (value type)という違いがあり、このことはパラダイムの違いを…

Swift 2 Error Handling in Practice #swift2symposium

Swift 2 から新たに導入されたエラーハンドリングに関する機能を実際のアプリで利用しようとすると、いくつか悩みどころがあることに気付く。これらの問題について議論を深め、実践的な解を求めていきたいと思う。 Which is better? — Optional type or thro…

結婚しました

学生の頃から4年半付き合ってきた彼女と結婚しました。 区役所に婚姻届を提出し、両家の両親らをお招きして食事会を催しました。 もう2年ほど同棲しておりましたので、これといって変わることもありませんが、よりいっそうがんばって参りたいと思います。 今…

watchOS 2のアーキテクチャが意味すること

以前に書いたように、watchOS 1.0においてWatchKitアプリはiPhoneの側でそのプロセスが動作する。Apple Watch側にあるのはUIリソースのみであり、実際の処理はiPhone上で行われる。これは非常に高度な仕組みでありながらも、パフォーマンス上の問題を抱えて…

Swift 1.2

第61回 Cocoa勉強会関西で“Swift 1.2 The long-awaited language updates”と題して発表した、Swift 1.2の主だった(おもしろい)変更点の紹介です。 if let Swift 1.2で最も改善されたのはif文です。if letでOptionalをunwrapできる機能が大きく向上し、複数…

iOS/OS X 用ライブラリ UTIKit を OSS でリリースしました

cockscomb/UTIKit UTI UTI とは Uniform Type Identifier のことで、iOS や OS X の世界で、ファイルなどの種類を表すために用いられる文字列です。 UTI の実例として、画像一般を表す public.image や、そのサブタイプで JPEG 画像を表す public.jpeg など…

NSWindowのタイトルバーをカスタマイズする

人類の多年の夢であったNSWindowのタイトルバーのカスタマイズであるが、YosemiteになってついにオフィシャルなAPIが実装された。 YosemiteではApple製のアプリケーションほとんどにおいてデザインが一新され、かつてOS Xを特徴付けていたツルッとしたテクス…

砦を破壊する技術

取り急ぎBesiegeおもしろい - しもばや式 Besiege面白い - 日直地獄 みんな楽しそうに遊んでいてけまらしいので、Besiege買った。僕だって物理エンジンの世界で城砦を破壊してみたい。 古来より城攻めには投石器と相場は決まっており、かの芭蕉も「夏草や 兵…

謹賀新年

三保の松原から望む富士山 富士川PAから望む富士山 日本平から望む富士山 本年もよろしくお願いいたします。

Androidアプリ開発を始めるときに読む本

今年はついにAndroidアプリを作りました。Androidアプリを開発するに当たって、Java言語にもAndroidプラットフォームにも明るくなかったので、勉強しようと本を読みました。いろいろ読みましたが、そのうち特によかったものを紹介します。 Java言語 Effectiv…

WatchKitアーキテクチャ概論

来年初めにリリースされるというApple WatchのSDKがプレリリースされた。Appleはこれを WatchKit と呼ぶ。Apple Watchで動作するWatchKitアプリは、いったいどのようなアーキテクチャにより駆動されるのか。この興味深い仕組みについて考察する。 WatchKit -…

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

「記憶に残る風景」 #地元発見伝 札幌市, 北海道 小学校。 札幌市, 北海道 中学校。 札幌市, 北海道 高校。 Google Maps 大学。 地元の魅力を発見しよう!特別企画「地元発見伝」 その辺にたくさんうろついている人間たちには、それぞれの人生があって、それ…

Android Studio便利テク #3 — メソッドをグルーピングする

Javaでクラスの実装を進めていくと、あるメソッドが継承元クラスのメソッドをオーバーライドしているのか、あるいは何らかのinterfaceの実装なのか、だんだん見分けがつかなくなります。一定の規則でメソッドを並べたり様々な工夫があることと思います。 Xco…

Android Studio便利テク #2 — デバッグ中にbyte[]の中身の文字列を読む

Androidアプリの開発では、デバッグ中に`byte[]`型のバイト列を見ることがあります。ネットワーク通信の結果やファイルから読み出したデータなど様々ですが、たいていの場合は文字列です。本記事ではAndroid Studioで、`byte[]`の内容を簡単に確かめる方法を…

Android Studio便利テク #1 — フィールド名にプリフィックスを付ける

Androidの一般的なコーディングスタイル*1によれば、フィールド名にいくつかの規則がある。このなかにprivateでstaticじゃないフィールドはmから始まること、staticなフィールド名はsから始まること、という二つの決まりがある。 Android Studioでそのように…

モバイルアプリのObserverパターン

ReactiveCocoa勉強会関西にてObserverパターンについてお話ししましたので、以下にその内容をまとめます。 Observerパターンは、GoFの23のデザインパターンのうちの一つで、モデルが状態の変化をしビューに通知するパターンです。GUIアプリケーションの開発…

お腹減ってきた

さっきからグミ食べてる photo by Nomadic Lass

Ghost Stories

Ghost StoriesコールドプレイAlternative¥1600Coldplayのアルバム出てたので買いました。MagicコールドプレイAlternative¥250provided courtesy of iTunes落ち着きがあっていい感じ。A Sky Full of StarsコールドプレイAlternative¥250provided courtesy of …

iOSアプリ開発における便利OSSライブラリの選定について

(Andy Myers and the CocoaPods Dev team. Creative Commons - Attribution-NonCommercial 4.0 International) iOSアプリを作るとき、今日ではCocoaPodsを用いて簡単に便利なライブラリの力を借りることができる。 ライブラリを利用するメリットは多い。自分…

Web APIを利用するiOSアプリのテスト技法

もう先週ですが、表題のタイトルで「Consumer Service Engineer MeetUp Vol.1 ~iOS編~」という会でお話しさせていただきました。 このようなタイトルの発表にした理由についてですが、はてなとしてお話しするということで、ちょっと硬派な方に振ってみました…

きょうの料理ビギナーズで勉強しています

きょうの料理ビギナーズは非常に良いシリーズです。料理というのは毎日続けないといけない家事であって、だからほんの一度すごく凝った料理を作るより、簡単でも毎日作り続けることが重要なのです。きょうの料理ビギナーズはちょうどそういう要件にマッチし…

brew servicesを使ってHomebrewでインストールしたMySQLを自動起動する

HomebrewでMySQLをインストールすると、post_installメッセージとして To have launchd start mysql at login: ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents Then to load mysql now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl…

iOSアプリ開発関連書籍、大量入荷のお知らせと、おすすめの10冊まとめ

京都に本社を置きWebサービス事業を展開する会社で、WebサービスやiOSアプリを作ったりしている。会社にはたくさんの技術書があるが、iOSアプリ開発関連の書籍がすこし足りないと感じていた。しかしながら読んでみたい本があったら自分で買ってしまうから、…

はてなブログおみくじ2014

はてなブログおみくじ2014 あけましておめでとうございます。 今年は大人になりたい。もっといいもの作りたい。

iOS 7におけるUIStatusBarStyleのベストプラクティス

photo by Janitors 前提 iOS 7からView Controller単位でステータスバーを設定しやすいようになりました。 ベストプラクティス Info.plist はじめに、Info.plistでUIViewControllerBasedStatusBarAppearanceがNOになっていないことを確認します。NOだったら…

Livre

Livre(リブリ) プライベート日記を写真アルバムやカレンダーで彩り、手帳よりも簡単に瞬間でスタンプと写真加工(カメラ)で料理、育児の写真をデコれる無料アプリNagisa-inc.jp.ライフスタイル無料 アプリの説明にこんな方にオススメっていう欄があって は…

Sequel Proのクエリエディタで一つ前の文字を消す方法

Sequel Pro Sequel ProというOS X用のオープンソースソフトウェアがあって、MySQLのGUIクライアントとして使える。いろいろ便利でid:hitode909さんに教わってからよく使っている。 ^H Sequel Proには唯一重大な欠点があって、クエリエディタで一つ前の文字を…

おすすめアングリーバード情報です

Q&AB'z¥250provided courtesy of iTunesかっこいいと思う。iTunesのアフィリエイトできるようになった! - a box of chocolates確かにいい。iTunes StoreやApp Storeから商品の検索・貼り付けに対応しました。アフィリエイトプログラムも簡単に利用できます…

スコンブ市長です

ようやく楽しみにしていたシムシティ買えた。シムシティ、Windowsのやつはとっくに発売していて、Macのやつは延期とかあってようやく発売されたところ。Windows持ってないから、ずっと待ってた。シムシティ買うのすごい大変で、一回買うの失敗したけどデビッ…

りんご飴

夏の写真2013〈ひと夏の思い出をブログに残そう〉 祇園祭の宵山で初めてりんご飴食べた。りんご飴、食べても良いことない。見てるだけでよかった。

かわいいイラスト描いた

はてなブログのお絵かき機能ならこんなにかわいいイラスト描ける ブログで簡単な絵を書こう! 編集サイドバーに「お絵描き機能」を追加しました - はてなブログ開発ブログ

彼女が遊んでるよく分からないiPhoneアプリ達

アプリ おっさんたまご - comcept Inc. なんかたまごを茹でて、たまごがゆで卵になると殻をむく。殻をむくと中からおっさんの顔が出てくる。「豆腐屋の田中さん」みたいな、そういうありがちな名前のおっさんを集められて、なんか嬉しいらしい。 アルパカに…

週末の日記です

金曜日なんかダルいと思ったら土曜日には発熱して、せっかくだから風邪をいいことに彼女に甘えまくって、いまはけっこういいけどまだダルい。週末、退屈だけど起きてると怒られるから諦めてずっと寝てた。もう寝るのも飽きた。 彼女は頼もしい。

Sublime Text で Perl のテスト実行するプラグイン作った

Sublime Text で prove するやつできた。Sublime Text 3 でしか動かない https://t.co/XZ0j0fHi5B— Hiroki Kato (@cockscomb) June 9, 2013 情弱だからエディタの設定したくなくてずっと Sublime Text 使ってるせいで、プラグインみたいなの自分で作らないと…

iOS で写真.app による編集を CIFilter で再現

AssetsLibrary.framework でカメラロールから生の画像データが取り出せるほか、ただ UIImagePickerController を使うのに比べ柔軟にいろいろなことができる。それで、そのままふつうに使っていて遭遇する問題のひとつが、iOS 標準の写真アプリによる画像の加…

Cocoa 勉強会関西で Unit Test について話しました

テスト、まだまだこれからというところだけど、現在の知見について一度まとめておこうという体で話した。

家では iPhone

今週のお題「スマホ使ってる?」 家でパソコンあんまり使わない。仕事してるときずっとパソコン触ってるから、帰ったらあんまり使おうという気持ちにならない。専ら iPhone 使ってる。

飛ぶ

夢の中で、空っぽの部屋に彼女といた。そこは夢の世界だって知っていて、これは夢だからぜったい飛べる、飛んでみせるから真似してみろ、というような感じで部屋の中で飛び上がる。飛び上がって天井すれすれまでいくのだけど、そこからどんどん高度が下がっ…

Webフォントを使うときは空のグリフに注意

昨今のWebデザイン界隈ですと、それは当然Webフォントを使おうということにもなろうと思いますが、注意すべき事柄に気付きましたのでここに御シェアさせていただきたく存じます。 問題 フォントの中にはたくさんのグリフ(字形)が入っていて、「あ」だった…