Takahiro Octopress Blog

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

複数のiBeacon信号を利用してみよう!

複数のiBeaconを検知する方法

さて、本日はさらっと複数のiBeacon信号の検知について考えてみたいと思います。
(これまでできるだろうという考えではあったものの、実際に試してみたことがなかったのでメモ書きです。)
Central側ではiBeacon信号をキャッチしたときに、そのオブジェクトを配列の形で取得することができます。
具体的には、

1
2
3
4
5
6
7
// Beacon信号を検出した場合
- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
  if (beacons.count > 0) {
      NSLog(@"%@", beacons);
  }
}

のように beaconsNSArray の型で返ってきていますよね。
単純にこれを使ってやればよいのです。

CROSSWALKの性能を確かめよう!

CROSSWALKは果たして優秀なのか!?

以前、CROSSWALKについて紹介させて頂きました。
メリット/デメリットはいろいろなサイトで紹介されていますが、実際に性能はどうなのか気になりますよね?
そこで今回は幾つかの端末を用いて試験をしてみました。

Xcode6.2で使ってみようDoxygen

Doxygen

さて、本日はDoxygenについて書こうと思います。
筆者はAppleライクなリファレンスを生成できるappledocを利用していましたが、なぜかXcode6.2でうまく生成できないことやAppleの公式リファレンスのデザインが以前より大幅に変更されたことからDoxygenを使うことにしました。

DoxygenはC++, C, Java, Objective-C, Python, IDL, Fortran, VHDL, PHP, C#のためのドキュメントジェネレータツールです。
独特のリファレンススタイルであるものの、下記3点のメリットがあると公式サイトに書かれています。

  • ドキュメントとソースコードの一貫性を保つことが容易
  • 文書化されていないソースファイルから、 コードの構造を抽出するように設定可能
  • Doxygen を「乱用 (abuse)」して、 通常のドキュメントを作成可能

では、早速使ってみることにしましょう。

Objective-Cにおける継承とカテゴリ

Objective-Cの継承とカテゴリについて

さて、本日は今更ですが、Objective-Cの継承とカテゴリについて書きたいと思います。
理由は、最近、自分だけではなく、 『第三者が見てもわかりやすいクラス』 を作ることを意識し始めたからです。
本当に今更ですね笑。

アジェンダは下記です。

  • Objective-Cの継承
  • Objective-Cのカテゴリ
  • シングルトンパターンでの継承
  • シングルトンパターンのクラスを継承したクラスのカテゴリ

では、早速見て行きましょう。

Android StudioでCROSSWALKを使おう!

Androidでハイブリッドアプリを作ろう

以前、iOSではiOS8からWKWebViewという新しいWebViewが追加されたことを説明しました。
では、Androidはどうなのでしょうか?

Androidは4.3までWebKitベースのWebViewをアプリに組み込んでいました。
しかし、Android4.4より、ChromiumベースのWebViewとなりました。ここで、大きく異なるのはレンダリングエンジンが Blink になったというところです。
また、Android4.4まではChromiumがバージョンアップされたとしても、各メーカーがAndroidのOSバージョンアップを提供しなければ、最新のWebViewを利用することができませんでした。

この現状を見たのかGoogleはAndroid5.0以降、WebViewをOSから切り離し、Google Play経由でバージョンアップ可能としました。
よって、メーカーがOSのバージョンアップをする/しないに関わらず、Google側の意志で最新のWebViewをユーザに提供可能となったのです。

Android Studioを始めてみよう!

Android Studioとは

Googleが2013年のGoogle I/Oで発表したAndroidアプリ開発に最適化した開発統合環境です。
iOSアプリ開発者であると、Macを使っている方がほとんどだと思うのですが、
もちろんMacにもインストール可能です。
Android Studioのインストールはこちらからできます。

この記事時点での最新版は1.2です。
では、早速、Android Studioを使ってみましょう。

プログラミングまでの準備

Android Studioを起動すると次のウィンドウが表示されます。
Android Studioを起動

OS X Serverを使ったらMacがシステム終了しなくなった

OS X ServerでXcodeの設定をしたら…

さて、本日は、急遽、Macbook Proがシステム終了しなくなった件についてのメモです。
先日、OS X ServerのXcode周りの設定をいじっていました。
すると、下記の現象が発生するようになってしまいました。

  • システム終了しようとすると、終了していないユーザがいるため、ユーザの切替を要求される
  • システム終了しようとしても、Macbook Proがうんともすんとも言わない

SwiftでGoogle OAuth2認証をしよう!

Swift版 OAuth2認証

本日はiOSでGoogle OAuth認証がしたいのSwift版を紹介したいと思います。
Google Play Consoleでの設定やGoogleから配布されているOAuth2認証に必要なソースのダウンロード方法については上記の記事に任せるとして、具体的なソース部分を紹介します。

では早速、Objective-CのソースをSwiftで書きなおしたものを下記に載せます。

Facebookのモバイルチューニングの極意を読んで…

発展途上国への提供を見据えたモバイルチューニング技術について

さて、今回は少し趣向を変えた内容を書いてみようと思います。
以前の記事、iOS オールスターズ勉強会に参加しました!で通信のパフォーマンス改善の話を聞いたと書きました。
その話の中で紹介されていた、Facebook が語るモバイル・チューニングの極意:これで途上国のインターネットも OK!を読んでみて、それを自分なりにまとめてみましたので、載せたいと思います。

SwiftでWebSocket!

socket.io公式クライアントソースを使ったサンプルの作成

先日、公開されたsocket.io公式のクライアントソースを使って、サンプルを作成したいと思います。
公式にもサンプルコードは公開されているのですが、練習がてら試してみたいと思います。

因みに本件にはサーバ側の説明は特に書いていません。
下記、内容を試したい場合はGitHub: socket.io.webからソースをダウンロードしてお使いください。