Takahiro Octopress Blog

-1から始める情弱プログラミング

iOSアプリを開発する上で気をつけよう!ProductionとDevelopment

iOSアプリの開発で失敗しないためのお約束

お久しぶりです!!最近はインターネットを使えない状況だったため、ブログの更新が滞っていました。しかし、本日からブログ再開したいと思います。
とは言うものの、約1ヶ月ぶりなため、リハビリを兼ねて今日は軽い内容にしておきたいと思います。

本日のお題はiOSアプリの開発で失敗しないために何を確認すべきかです。
開発者が自分のアプリを開発し、Appleに申請するのであれば、まず間違えることはないでしょう。
しかし、証明書を自身で発行せずに、他者が発行した証明書を用いてipaファイルもしくはappファイルを作成する場合は気をつけておかないとハマってしまうことがあります。

それは各種証明書がProductionDevelopmentのどちらで作成されたものかということです。

Background FetchとBackground Transferについて

Background FetchとBackground Transferの違いについて

今回はBackground FetchとBackground Transferについて筆者が混同していたことについて書こうと思います。Background Fetchのできることや使いどころは前回書きましたので、そちらをご覧下さい。
もともと筆者がBackground Transferに着目した理由はBackground Fetchでは不可能な長い時間の処理を実現させたいからでした。Background Transferでは見事にその想いを実現できる!!っと思っていました。
しかし、どうやら根本的に理解が間違っていたようなのです…。

Background Fetch completionHandlerの実行タイミングについて

Background Fetchで気をつけること

本日はBackground fetchについて書きたいと思います。時間の都合上、何回かに分けて書く予定です笑
Background fetchは既に皆さんもご存知の通りiOS7から加わった新機能です。通常、アプリをBackground起動にしたとき、アプリ内処理に許される時間は5秒間です。iOS6まではBackground起動中に継続して処理可能な機能は決まっていました。(位置情報の取得, 音楽の再生, 電話の3つ)
従って、これまではbeginBackgroundTaskWithExpirationHandlersetKeepAliveTimeoutを用いて最大10分間の処理を継続して実行していました。(しかし、iOS7ではこの方法ができないらしいです。)
これに対してBackground fetchは30秒の制限はあるものの、OSが実行すべきと思ったタイミングで複数回実行されます。継続して実行する必要はないものの、どこかのタイミングで実行しておきたいというときには有効に使うことができるでしょう。

iPhoneアプリを申請しました(3)

iPhoneアプリのバージョンアップ申請をしました

本日、BLEMeasure 2.0を公開しました。昨年から公開しているBLEメジャーのバージョンアップとなります。今回はバージョンアップまでの道のりを紹介したいと思います。
BLEMeasure 2.0
下記からダウンロードページにいけます

AplixのMyBeaconを使ってみた

AplixのUSB給電型Beacon発信機 MyBeaconを使ってみた

先日、Aplix社が発売を開始したMyBeaconを早速購入して試してみました。
まずはAplix社の提供している専用のiOSアプリケーションをダウンロードしてみましょう。
MyBeacon Tool – Aplix

次にMyBeaconの送付物の中に同封されていた紙に書かれているURL先にアクセスしてみましょう。
すると、下記の画面が表示されます。
Aplix社のMyBeacon用の画面

Objective-cでUNIX時間を取得する方法

Objective-CでUNIX時間を扱うための方法

今日はUNIX時間を扱う方法について紹介します。UNIX時間とはUTCでの1970/01/01 00:00:00からの経過秒数を表したものです。
世界規模でアプリを開発するなら、UTCで時間を扱う必要があります。また、2つの時刻の差を求めるときは引き算をすれば良いので、時間の演算が非常に簡単にできることもメリットです。
すなわち、知っておいて損はないってことです。

では、Objective-cでのUNIX時間の扱い方について早速説明しましょう。

噂のiOS7.1でiBeaconを試してみよう!!

iOS7.1ならアプリのBackground起動も必要なし!?

さて、本日は最近いろいろなところで取り上げられているiOS7.1でのiBeaconについて実際に試してみました。
iOS7から導入されたiBeaconですが、これまではアプリをBackgroundで起動していなければBeaconを検知することができませんでした。しかし、iOS7.1からアプリをBackgroundで起動していなくてもBeaconを検知できるようになったとビッグニュースになりました。でも、本当にそうなんでしょうか?と疑問に思った筆者はSampleアプリで試してみました。

FMDBを使ったDB接続を関数化しよう!!

FMDBを使ったDB接続を自作関数化

さて、ブログを更新します。以前、FMDBを使って簡単にiPhoneのローカルストーレジを活用しよう!でObjective-CでSQLiteを扱うためのFMDBライブラリについて説明させて頂きました。
そのときは全てをベタ書きしていましたが、毎回書くのは面倒ですよね…ってことで自作しちゃいましょう!!

CLLocationManagerDelegateのdidUpdateToLocationがDeprecated!?

didUpdateToLocationではなくdidUpdateLocationsを使うべき!?

久々に更新します。今日は位置情報サービスで変更があった点に注目してみます。筆者は昨日まで、この変更を気にせずに普通にこれまで通りの方法で位置情報の取得をしていました。
しかし、よくよくAppleのCLLocationManagerDelegate Protocol Referenceを見てみると、『locationManager:didUpdateToLocation:fromLocation:』にDeprecated in iOS 6.0の文字が…。
そして代わりに『locationManager:didUpdateLocations:』というものがありました。
う〜む…どうやら今はこちらを使った方が良いようですね。