Development
新成人のみなさん、おめでとうございます。大人になるのは難しいことだけど、自由に自分の人生を歩んでほしいと思います。 UIControlState UIControlにはvar state: UIControlState { get }というプロパティがある。これはすべてのUIControlの状態を示す。UI…
皆さん今朝はどんな夢をみましたか。今日は私の初夢を紹介します。 prepareForSegue iOSアプリを開発していて、特にStoryboardを利用して遷移を作るとき、往々にしてそのコードは不完全になる。 ViewControllerの遷移をするときには、次に表示されるViewCont…
新年あけましておめでとうございます。 class, struct Swiftにはclass (class)の他にstructure (struct)があり、どちらもよく似た機能を提供する。しかしそれぞれ参照型 (reference type)と値型 (value type)という違いがあり、このことはパラダイムの違いを…
Swift 2 から新たに導入されたエラーハンドリングに関する機能を実際のアプリで利用しようとすると、いくつか悩みどころがあることに気付く。これらの問題について議論を深め、実践的な解を求めていきたいと思う。 Which is better? — Optional type or thro…
以前に書いたように、watchOS 1.0においてWatchKitアプリはiPhoneの側でそのプロセスが動作する。Apple Watch側にあるのはUIリソースのみであり、実際の処理はiPhone上で行われる。これは非常に高度な仕組みでありながらも、パフォーマンス上の問題を抱えて…
第61回 Cocoa勉強会関西で“Swift 1.2 The long-awaited language updates”と題して発表した、Swift 1.2の主だった(おもしろい)変更点の紹介です。 if let Swift 1.2で最も改善されたのはif文です。if letでOptionalをunwrapできる機能が大きく向上し、複数…
cockscomb/UTIKit UTI UTI とは Uniform Type Identifier のことで、iOS や OS X の世界で、ファイルなどの種類を表すために用いられる文字列です。 UTI の実例として、画像一般を表す public.image や、そのサブタイプで JPEG 画像を表す public.jpeg など…
人類の多年の夢であったNSWindowのタイトルバーのカスタマイズであるが、YosemiteになってついにオフィシャルなAPIが実装された。 YosemiteではApple製のアプリケーションほとんどにおいてデザインが一新され、かつてOS Xを特徴付けていたツルッとしたテクス…
今年はついにAndroidアプリを作りました。Androidアプリを開発するに当たって、Java言語にもAndroidプラットフォームにも明るくなかったので、勉強しようと本を読みました。いろいろ読みましたが、そのうち特によかったものを紹介します。 Java言語 Effectiv…
来年初めにリリースされるというApple WatchのSDKがプレリリースされた。Appleはこれを WatchKit と呼ぶ。Apple Watchで動作するWatchKitアプリは、いったいどのようなアーキテクチャにより駆動されるのか。この興味深い仕組みについて考察する。 WatchKit -…
Javaでクラスの実装を進めていくと、あるメソッドが継承元クラスのメソッドをオーバーライドしているのか、あるいは何らかのinterfaceの実装なのか、だんだん見分けがつかなくなります。一定の規則でメソッドを並べたり様々な工夫があることと思います。 Xco…
Androidアプリの開発では、デバッグ中に`byte[]`型のバイト列を見ることがあります。ネットワーク通信の結果やファイルから読み出したデータなど様々ですが、たいていの場合は文字列です。本記事ではAndroid Studioで、`byte[]`の内容を簡単に確かめる方法を…
Androidの一般的なコーディングスタイル*1によれば、フィールド名にいくつかの規則がある。このなかにprivateでstaticじゃないフィールドはmから始まること、staticなフィールド名はsから始まること、という二つの決まりがある。 Android Studioでそのように…
ReactiveCocoa勉強会関西にてObserverパターンについてお話ししましたので、以下にその内容をまとめます。 Observerパターンは、GoFの23のデザインパターンのうちの一つで、モデルが状態の変化をしビューに通知するパターンです。GUIアプリケーションの開発…
(Andy Myers and the CocoaPods Dev team. Creative Commons - Attribution-NonCommercial 4.0 International) iOSアプリを作るとき、今日ではCocoaPodsを用いて簡単に便利なライブラリの力を借りることができる。 ライブラリを利用するメリットは多い。自分…
もう先週ですが、表題のタイトルで「Consumer Service Engineer MeetUp Vol.1 ~iOS編~」という会でお話しさせていただきました。 このようなタイトルの発表にした理由についてですが、はてなとしてお話しするということで、ちょっと硬派な方に振ってみました…
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…
京都に本社を置きWebサービス事業を展開する会社で、WebサービスやiOSアプリを作ったりしている。会社にはたくさんの技術書があるが、iOSアプリ開発関連の書籍がすこし足りないと感じていた。しかしながら読んでみたい本があったら自分で買ってしまうから、…
photo by Janitors 前提 iOS 7からView Controller単位でステータスバーを設定しやすいようになりました。 ベストプラクティス Info.plist はじめに、Info.plistでUIViewControllerBasedStatusBarAppearanceがNOになっていないことを確認します。NOだったら…
Sequel Pro Sequel ProというOS X用のオープンソースソフトウェアがあって、MySQLのGUIクライアントとして使える。いろいろ便利でid:hitode909さんに教わってからよく使っている。 ^H Sequel Proには唯一重大な欠点があって、クエリエディタで一つ前の文字を…
Sublime Text で prove するやつできた。Sublime Text 3 でしか動かない https://t.co/XZ0j0fHi5B— Hiroki Kato (@cockscomb) June 9, 2013 情弱だからエディタの設定したくなくてずっと Sublime Text 使ってるせいで、プラグインみたいなの自分で作らないと…
AssetsLibrary.framework でカメラロールから生の画像データが取り出せるほか、ただ UIImagePickerController を使うのに比べ柔軟にいろいろなことができる。それで、そのままふつうに使っていて遭遇する問題のひとつが、iOS 標準の写真アプリによる画像の加…
テスト、まだまだこれからというところだけど、現在の知見について一度まとめておこうという体で話した。
昨今のWebデザイン界隈ですと、それは当然Webフォントを使おうということにもなろうと思いますが、注意すべき事柄に気付きましたのでここに御シェアさせていただきたく存じます。 問題 フォントの中にはたくさんのグリフ(字形)が入っていて、「あ」だった…
パソコンだけ持って出発……— Hiroki Kato (@cockscomb) February 22, 2013 乗車成功 conferenceWithDevelopers きた。 #confwd— Hiroki Kato (@cockscomb) February 23, 2013 位置情報おかしくなってカナダにいることになってる— Hiroki Kato (@cockscomb) Fe…
エンジニアであれば、Fortran で NetCDF データを読み込むなんてこともよくありますよね。だから今日はそのやり方を簡単に説明します! 前提 Fortran っていうのは、数値計算とかに使う計算が速い言語のことです。NetCDF は大気海洋系の人たちがよく使う、多…
楽だからと Sublime Text を使い始めて1年弱ですが、数日前いきなり Sublime Text 3 Beta が発表されて驚きました。 Sublime Text 3 Beta is now available for registered users: http://t.co/ZVaNmfWG— Sublime HQ (@sublimehq) January 29, 2013 Sublime …