Apps that were installed when the new PC setup
新しいPCをセットアップするときにインストールしたアプリのメモ。だいたいこれだけあれば仕事ができる。LimeChat IRCクライアント XCode & Command Line Tools IDE LINEメッセンジャーGoogle...
View ArticleLifecycle of UIViewController
UIViewControllerのライフサイクルは、もうそこかしこで語り尽されてると思うけど改めて書いてみる。基本的なライフサイクルコンストラクタ生成から非表示になるまでは、以下のようなメソッドを通ります(ARC前提で書いています)。initinitWithNibName:bundle:loadViewviewDidLoadviewWillAppearviewDidAppearviewWillDis...
View ArticleHow to export/import secret key from Keychain
iOS(キーチェーン的にはiOSとか関係ないけど)の秘密鍵をエクスポート/イポートする方法と注意点についてまとめ。秘密鍵のエクスポートの方法エクスポートするときはキーチェーンのウィンドウの左側にある鍵のところを選択してから、右側にある該当の秘密鍵を選択し、右クリックで書き出すを選択しないと、その後のインポートが失敗する。秘密鍵のインポートの方法秘密鍵のファイル(foo.p12)をFinderでダブル...
View ArticleviewWillDisappear is not called when calling popToRootViewControllerAnimated
まぁ、表題の通りなんですが。UINavigationControllerのpopToRootViewControllerAnimated:を呼んだときに、そのとき表示していたUIViewControllerのviewWillDisappearが呼ばれるのを期待していると、実際には呼ばれないので残念なのことになります。stackoverflowにも以下のようなスレがありました。viewWillDisa...
View ArticleCocoaPods can Specify the platform in a target configuration
CocoaPods、便利ですよねー。最近作られているiOSのライブラリは、CocoaPods対応が必須になってる風だったりします。ただ、自分はまだまだ使いこなせてない部分がけっこうあって、こないだもCocoaPodsを使っていてハマったというか知らなかったことがあったのでメモっておきます。※なお、これから書く話はたぶん普通はみんな知ってる話だと思います…。最近アプリのテストにKiwiというライブラリ...
View ArticleiOS7でUISearchBarのキャンセルボタンを押したときの挙動
iOS7ではUISearchBarのデザインが変わって、ルーペとプレースホルダー(例えば「検索」という文字列)がセンタリングされるようになりました。入力を開始されるとルーペとプレースホルダーが左端に移動して、そこで何かが入力された状態だとそのままの位置になりますが、何も入力されてない状態でキャンセルボタンを押すと、ルーペとプレースホルダーがまたセンターに移動するという仕様のようです。で、こないだキャ...
View Article'isa' is deprecated in iOS7
iOS7 から foo->isa という記法が deprecated になっています。こんなの普段は使わないので気にしなくてもいいと思っていたら JSONKit がこの記法を使っているんですね。ってことで、JSONKit を使う場合には Stackoverflow の iOS 7 : 'isa' is deprecatedにあるような感じで解決することができます。簡単に言うと、Podfile...
View ArticleWhere is an arrow for initial view controller
これからもっとブログを書こうと思っている次第。Storyboard を使ってて、最初に開く View Controller を示す矢印ありますよね。↓これです。これを間違って消しちゃったときにどう復活させるか今日困ったんですが、同僚に教えてもらいました。Xcode で当該の View Controller の Attributes Inspector に下記のようなところがあって、この「Is...
View ArticleHow to use hubot
Hubotというのを触ってみました。Hubotとはhttps://hubot.github.com/Hubotはgithub謹製のbot開発用のフレームワークです。coffeeescriptを使って書かれていて、node.js上で動かします。Hubotの最大の特徴は、アダプタを使うことによって様々なサービス(hipchatとかslackとか)向けにbotを作ることができることです。インストールOSX...
View ArticleInstalling Swift 3.0
最近Swift 3.0をいじってます現在AppleがリリースしているSwift(Xcodeに付属しているもの)は今2系ですが、現在別途3系の開発も進められています。3系はSNAPSHOTとして公開されているので、ダウンロードして試すことができてSPM(Swift Package...
View ArticleCreating Swift 3.0 Project
Swift 3.0でプロジェクトを作る前回の記事でSwift 3.0をインストールできたと思いますので、今回はそれを使ってプロジェクトを作成してみたいと思います。Swift 3.0にはSwift Package Manager(以下SPM)というのが組み込まれていて、それを使うことによりプロジェクトの雛形を生成することができます。プロジェクトの雛形を作るまず、プロジェクトのディレクトリを作ります。$...
View ArticleUsing libraries in Swift 3.0
外部のライブラリを使ってみる前回は、SPMを使ってプロジェクトの雛形を作り、ビルドをして実行するところまでご紹介しましたが、プログラム的にはHello,...
View ArticleSPM with Xcode
Swift 3.0をXcodeで開発したい!ところでmain.swiftを書くときにXcodeは使えないのでしょうか。Swiftに限りませんが最近の言語は補完などのIDEのサポートが使えないとけっこう書くのが大変ですよね。でもご安心ください。最近のSPMにはすばらしいオプションが備わっています。$ swift build --generate-xcode...
View ArticleAnnotation basics in Java
アノテーション最近、Javaを書いてます。(そんなに書いてないけど…)で、Javaにはアノテーションという機能(?)がありますよね。実際自分もいろんなところで使ってはいるんですが、ちゃんと理解しているわけじゃなかったので調べてみました。アノテーションとはアノテーションとはJava SE...
View ArticleFunctional Interface
@FunctionalInterfaceアノテーションを調べていたら@FunctionalInterfaceというアノテーションを知りましたので、これが何なのかちょっと調べてみました。tl;dr結論から言うと@FunctionalInterfaceは、抽象メソッド(Abstract...
View ArticleDynamic Proxies
動的プロキシとはあるメソッドが呼ばれた際にその前後でなにかの処理を挟む手法をAOP(アスペクト指向プログラミング)といいますが、それを実現するために必要な動的プロキシという機能がJavaにあるようです。今回は、JavaSEに標準であるjava.lang.reflect.Proxyを利用して動的プロキシを試してみました。やること今回は、SampleClassのsomeMethod()を呼んだ際に、その...
View ArticleHello world in Elm
Elmを試してみたよElmという言語を知ったので試しに使ってみました。Elmは、Haskellなどと同じ関数型言語でWikipediaによると『ユーザビリティ・パフォーマンス・堅牢性を重視して開発されている。静的かつ強力な型検査によって「事実上一切の実行時例外が起こらない」』ということを売りにしているようです。関数型言語は慣れが必要1,2年前に「すごいHaskellたのしく学ぼう!」という本でHas...
View Article