The Pragmatic Ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

Android NDKでerror: 'to_string' is not a member of 'std'

androidでC++のstd::to_stringを使うと以下のようなビルドエラーがでました。(環境:Android NDK r10d) error: 'to_string' is not a member of 'std' もちろんC++11の設定自体はできていて、他のstd::functionなどは問題なく使えます。 LOCAL_CFLAGS := -…

Swiftで引数リスト(CVaListPointer)の渡し方

SwiftからObjective-Cのメソッドを呼ぶ際に、引数が引数リスト(va_list)の場合、Swiftでは型が以下のようなCVaListPointerになります。 class func raise(_ name: String, format format: String, arguments argList: CVaListPointer) 結論からいきますと…

xcodebuildでdevice向けのビルドするときのdestinationの指定方法

以前xcodebuildのパラメータの指定方法についてこちらに書きました。 Travis CIでObjective-C/Swiftのテストを実行する - Pragmatic ball boy テストするときはシミュレータを指定するのでこれで問題ないのですが、 実機向けのstaticライブラリを用意したり…

FragmentでUnfortunately, XXX has stoppedでクラッシュする

Android StudioのNew->Fragmentで追加したFragmentを使って表示しようとすると "Unfortunately, XXX has stopped" というポップアップが出てクラッシュするという問題が発生。 Logにも何も出ていない・・・ どこでクラッシュしてるのかさっぱりわからなかっ…

iOS保守するときに年に一回くらい使うwikipediaのリンク

iOS

端末でどのバージョンまで対応してるか調べるとき Highest version of iOS supported 解像度を調べるとき Display iOSのβ版の過去の動向を見るとき iOSSDK History

32bit/64bit混成バイナリをiOS5.1.1端末にインストールできない

iOS

CocoaTouch 64ビット移行ガイド より、iOS5.1.1以降で32bit/64bitの混成バイナリが利用可能と書いてあります。 しかし、ipaファイルを作ってiOS5.1.1にインストールしようとすると失敗してしまいます。 AppleのDeveloper forumに情報があったのすが、 https:…

Android Studio : Project Structure

なぜかちゃんと設定されなくて手動で設定しなおした。 Android Studioだと~/Library/Android/sdk以下にAndroid SDKがインストールされるですね Android SDK location ~/Library/Android/sdk JDK location /System/Library/Frameworks/JavaVM.framework/Home

Genymotionのインストール

手元にAndroidデバイスがないけどちょっとエミュレーターで動かしたい場合に、通常のエミュレーターだと遅すぎて使い物にならないのでGenymotionを利用しています。 インストールした時の手順のメモです。 Genymotionのダウンロードとインストール ここから…

SwiftでUnitTestするときに"Use of undeclared type"になる場合の対処法

テストを実行するとこういうエラーがでることがあると思います。 Use of undeclared type 'Todo' does not have a member named 'todo' import XCTest import TodoApp class TodoTests: XCTestCase { var todo: Todo! override func setUp() { super.setUp()…

C++11に対応したプログラミング言語C++第四版

C++11に対応してるいい本ないかなと思っていたら2015年2月に発売の第四版の日本語訳版にはC++11も含まれているようですね。 ちょっとお値段がはりますがほしい一冊です もう一冊気になってるのがEffective Modern C++で、こちらはまだ出たばかりで日本語訳版…

Travis CIでObjective-C/Swiftのテストを実行する

[環境]Xcode 6.1 Swift,Objective-Cどちらの場合でもこの方法でいけるはずです。 Travis CIにドキュメントが用意されていますが、xctoolを使った例が示されているので無視したほうがよいです。xctoolはAppleが用意した標準のビルドツールではなく、Facebook…

Appleのアプリの審査期間の目安

リリース時期が決まっているときなどはこれを見てどれくらい前に審査に出せば間に合いそうかチェックするのに役立ちます Average App Store Review Times 審査期間はiOS8以降ものすごく長くなっていて最近はだいたい10~11日。in reviewに入るまでがやたらと…

App Annie

AppStoreでリリースしたアプリのダウンロード数やレビューをチェックするのには itunes connectが用意されていますが、 はっきりいって使いづらいです。 そこでその辺りを便利にするツールとしてApp Annie(http://www.appannie.com/)が有名です。 App Annie…

Pixateが1年間無料に

iOSでCSS風にViewのデザインができる有料ライブラリであるPixateが 1年間無料で使えるようになったみたい。(これまで使ってた人も新規も) http://www.pixate.com/blog/article/2013-07-01-pixate-free/ iOS7が出る前に客をつかんでおきたいってことかな

AppCodeの使っているXcodeを切り替える

Xcodeを複数入れている場合に、AppCodeが思ったのと違うXcodeを参照しててビルド通らねぇ!とかいう場合の対処法 ==================================================== 追記(2014/10) 最近使ったらやり方が変わっていたので記載 =========================…

iPhoneアプリのAnalytics Tool

iPhone/iPadアプリで分析を行うためのツールとしては無料で使える有名どころとしては以下の2つがあります。 Google Analytics http://www.google.co.jp/intl/ja/analytics/ Flurry http://www.flurry.com/ どちらもiOS用のSDKがあるので、簡単に使うことが…

Effective Objective-C 2.0

Effective Objective-C 2.0がようやく先月発売されたのでKindleで買って読んでみました。 それほど目新しいことが書いてあるかというとそうではないのですが、 Effectiveなんとかシリーズ全般に言えることですが、なんでそうすべきなのかの理由が論理的にち…

戻り値はidよりもinstancetype

メソッドの戻り値の型だけにつかえるキーワードみたいなもので A method with a related result type can be declared by using the type instancetype as its result type. instancetype is a contextual keyword that is only permitted in the result typ…

Dash

複数の言語やフレームワークなどのAPIドキュメントをオフラインで表示できるMacのアプリDashhttp://kapeli.com/dashが700円となってちょっとお買い得になってました。 ドキュメントを検索するだけでなく、Stackoverflowの検索も一緒にできるのでかなり便利で…

Custome UITableViewCellの[self addSubview]と[self.contentView addView]の違い

UITableViewCellを継承してカスタムセルを作成する場合にself.contentViewに対してaddSubviewするのとselfにaddSubviewするのとではぱっと見同じでどこが違うんだろうというところが気になったので調べてみた。わかりやすく背景に色をつけてやってみた。赤背…

CakePHPで The requested address not found

CakePHPでいかのようなエラーが出た場合、Error: The requested address ' ' was not found on this server.core.phpのConfigure::write('debug', 0);を0から1に変更したらなおった

root権限の付与

昔はこんなことしなくてよかったような気がするけど毎回忘れるので> su> visudoでviで設定ファイルが開かれ編集する。root ALL=(ALL) ALLのようにユーザーごとにsudoの権限を設定してやらないといけない

CoreDataのデータを全て削除

(BOOL)resetDatastore{ [[self managedObjectContext] lock]; [[self managedObjectContext] reset]; NSPersistentStore *store = [[[self persistentStoreCoordinator] persistentStores] lastObject]; BOOL resetOk = NO; if (store) { NSURL *storeUrl = …

半透明のviewを重ねる

半透明のviewの上にviewを以下のように重ねると子のviewのalphaも親のalphaに引きづられてしまい、子のviewのalphaを1.0に設定してもどちらも半透明になってしまう。 UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100,100)]; view.alpha …

iOS6変わったとこなど

相当すぎてますが、NDAも解禁ということで、、UIViewControllerでメソッドがDeprecateされたhttp://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/DeprecationAppendix/AppendixADeprecatedAPI.htmlmodalView系が…

Objective-Cのクラスメソッドの差し替え

テストのときにUIAlertViewの表示を消してくれるライブラリでどうやってUIAlertViewのメソッドをフックしてるのかと調べてみたところmethod_exchangeImplementations()を使って実装されてた。+ (void)swapInstanceMethodsForClass: (Class) cls selector: (S…

XP祭り2012に参加してきた

XP祭り2012に参加してきました。去年は参加だけだったので、今回はアウトプットをしようということでLTで登壇してきました。 Xp祭り2012 lt leanstartup from Yasuharu Yanamura これはUT Startup gymという半年間でアイデアをローンチまでするというプログ…

iOSでKiwiでテストする【基本編2】

つぎはテストコードの中身の書き方です。it のBlocksの中にテストコードを書きます。[テスト対象のオブジェクト should] マッチャー:期待される値];という書き方が基本です。マッチャーはequalなどですが、詳細はこちらを参照してください。https://github.c…

iOSでKiwiでテストする【基本編1】

詳細はこちら。http://www.kiwi-lib.info/specs.htmlRSpecのObjective-C実装といったところで、やはりRSpecと比べるとかなり機能が少なく最小限のようです。基本的な書き方は、ほぼRSpecと同じなので、RSpecの本とか読めば参考になりそう。使い方テンプレー…

iphone_dev_jp東京 mac/iphone Hackathonに参加してきた

使えるライブラリを作ろう!というハッカソンに参加してきました。個人的に家計簿アプリを作っていてNSDateがかなりいけていない(面倒なのが多い)のでそれを楽にするものを作りました。https://github.com/yanamura3/NSDateHelper実装自体は自分のソースコ…