プログラマでありたい

おっさんになっても、プログラマでありつづけたい

iOS

AWS Device Farmでモバイルアプリのテスト

すいません。すっかり遅くなりましたが、iOS Second Stage Advent Calendar 2015です。アプリ開発でやっぱり重要なのが、テストです。モバイルアプリの場合は、実機での確認も必要で機種も多いので特に大変です。そういった所で最近注目を集めているのが、イ…

5分で何となく解るAmazon Cognito

年末年始でじっくり調べてみようと思っていたのがCognitoです。先日ようやく時間が取れて、何となく解ってきたので簡単にまとめてみます。Cognitoは、モバイル向けに設計されたユーザーアイデンティティおよびデータ同期のサービスです。主な機能としては、…

iPhoneのスリープボタンが効かなくなってきたので、即ロックアプリを作った話

常に手元にあって気がついたら触ってしまうiPhoneですが、最近スリープボタンの効きが悪くなってきました。ホームボタンとスリープボタンは、iPhoneのなかで数少ない物理的なボタンです。特にiOSの設計思想上、ホームボタンは常に押す必要があるので、へたり…

ボールのラジコン「Sphero」をiPhoneの音声認識で操作しよう!!

「Sphero Robotic Ball」というラジコンのようなボールをご存知でしょうか?iPhoneやアンドロイドをコントローラとして、前後左右に自由に動かせて、更に様々な色に点滅させてと中々面白いおもちゃです。小さな子どもや犬猫と遊ぶとかなり楽しい代物です。完…

UIWebViewでWebサイトとネイティブアプリを連携する方法について

iOS

iOSによるiPhone/iPadのネイティブアプリで、サーバサイドのプログラミングと連携するケースは割とあるかと思います。その場合に、iPhone/iPadで表示する一部の機能についてはサーバサイドでサクッと作ってしまって、UIWebViewで呼ぶという方法は有力な手段…

Objective-Cで、プライベートメソッド・プロパティにアクセスし、ユニットテストを実行する方法

iOS

iPhone/iOSの開発をしていく上で、Objective-CでPrivate Methodにアクセスしたいなぁと思うことがあると思います。パブリックメソッドには、外部からのインターフェースのみを実装し、ロジック部分はプライベートメソッドに隠蔽するといったケースは多々ある…

NSStringのconstでdiscards qualifiersで怒られた場合の対処法

iOS

C系のプログラムをする人達には常識なのかもしれませんが、Objective CでConstで宣言した値を、メソッド中で使用すると次のようなワーニングが出ます。 const NSString *CLEAR = @"C"; ~ 略 ~ -(BOOL) _isClear:(NSString *)character { if ([CLEAR isEqualT…

AWS SDK for iOSでリージョンを指定する

AWS SDK for iOSを使ってみました。とりあえずS3が使いたいので、サンプル見ながらコーディング。サンプルには、およそS3を使う上で必要なものは殆ど網羅しています。余り困ることは無かったのですが、ダウンロードをするとエラーメッセージが出てくるバケッ…

カテゴリ別 App Storeのアプリ登録数

暇な時に、日本のApp Storeで登録されているアプリ数をカテゴリ別に調べてみました。書きだして眺めてみると、色々な気づきがあったので共有します。ちょっと眺めて見てください。 カテゴリー名 iPhone無料 iPhone有料 iPad無料 iPad有料 Newsstand - - - - …

XcodeでMissing fileのWarningが発生した場合の対処法

iPhoneアプリやiPadアプリの開発でXcode使っていて、大幅にソースの改廃やディレクトリの改変をすると、WarningでMissing fileが出る時があります。これは何かというと、svnやgitの管理ファイル上に残っているのが問題のようです。 解決方法については色々議…

iOS5のTwitter APIを使って実装してみる

iOS

最近、iOS5に追加されたTwitter APIを作ってTwitterに呟く機能を実装してみました。解説がいらないくらい簡単です。Twitter連携していて採用出来る環境の人は、是非使うべきでしょう。 まずはこれ Tweeting Sample Code TWTweetComposeViewController Class …

リリース済みのiPhone/iPadアプリのDBの変更の仕方 或いはCoreDataを使ってスキーマの自動マイグレーション

リリース済みのiPhone/iPadアプリのDBのテーブル定義を変更したい。こんなことって、ありますよね?しかし、サーバサイドのアプリと違って、クライアントサイドで動くiPhone/iPadアプリはどうやってデータの移行をすれば良いのでしょうか?リリース後に気が…

XcodeでGitのリモートリポジトリ(remote repository)を追加する方法

Xcode4.2系になって、文句なくよくなったのがバージョン管理ツールとの連携。今までが酷すぎたのですが、4.2になって随分と改善されています。まずデフォルトのバージョン管理ツールがGitになっています。GJ!! そして、それ以上に素晴らしいのが、Xcodeから…

熟練のプログラマが、iPhone/iPadアプリ作成に苦戦する理由

iOS

何回かiPhone/iPadアプリの作り方をレクチャーしていたのですが、わりと優秀なプログラマでも苦戦することが何回かありました。反面、経験の浅いプログラマがすんなりと習得している例もありました。 どうしてなんだろうなぁと考えていたのですが、最近少し…

iPhoneでカレログを作ろう その3 地図の表示

前回までのコーディングで、位置情報の取得ならびにDBへの格納が出来ました。今回はそのデータを使って地図を表示しようと思います。 地図を使ったサンプルは沢山ありますが、DB連携というところでWeatherMap、経路の描画にKMLViewerを参考にします。ちなみ…

iPhoneでカレログを作ろう その2 DBへのデータ格納

前回のコーディングで、位置情報を取得することができました。続いて位置情報をDBに格納しましょう。DBに格納せずに直接サーバに送り続けるということも考えられますが、扱いやすさを考えて一旦DBにいれます。 iOSではSQLiteを使うことが出来ます。使い方と…

iPhoneでカレログを作ろう その1 位置情報の取得

話題沸騰のAndroidアプリ、カレログ。初期に打ち出したコンセプトは確かにアレですが、彼氏の監視という利用方法から離れれば色々面白い製品になるのではないでしょうか?例えばモバイルデバイス管理(MDM)の製品は、似たような機能が搭載されています。例え…

あなたのiPhone/iPadアプリを5秒でiTunesとファイル共有する方法

iOS

幾つかのiPhone/iPadアプリはiTunesのAppsからフィル共有が出来ます。アプリによっては、これがあるかないかで使い勝手が大きく変わる場合があります。自分が作ったアプリの機能を考えて、便利になるようであれば是非実装しましょう。実はこのファイル共有の…