Takahiro Octopress Blog

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

iOS8.1でCLVisitとCMPedometerを試してみた!

iOS8から追加された新しい機能 CLVisitとCMPedometer

さて、久々の更新です。
今更ですが、CLVisitとCMPedometerについて調べてみました。
CLVisitはiOS8以降、CMPedometerはiOS8以降かつM8 モーションコプロセッサを搭載したiPhone6 or iPhone6 Plusでのみ利用可能です。
iOS8はともかく、まだまだ、iPhone6 or iPhone6 Plusは普及しているとは言い難いことでしょう。
実質的に多いのはiPhone5かもしれません…。
しかし、ここはエンジニアとして、1〜2年後を見て、アプリを開発すべきでしょう。
ということで早速、見て行きましょう。

iOS8からのLocalNotification

LocalNotificationでAction

今日はiOS8から追加されたLocalNotificationの新機能についてお話します。
これまでのLocalNotificationは

  • 通知が通知エリアに表示される
  • 通知をタップすることでアプリを起動

くらいの機能しかありませんでした。

しかし、iOS8からは届いた通知に対して、ユーザが答えることができるようになりました。

端末のバッテリ残量を取得(iOS8)

端末のバッテリ残量の取得が細かくなった

本日はiPhoneのバッテリ残量の取得について書きます。
これまではソース上、5%刻みでしかバッテリ残量を取得できませんでした。
しかし、iOS8以上の端末であれば、 1%刻み でのバッテリ残量の取得が可能になったようです。

Today Extensionのサンプルを作ってみよう!

Today Extension

本日は、iOS8から追加されたToday Extensionを使ったアプリを作ってみたいと思います。
さて、早速説明していきましょう。

Today Extensionをプロジェクトに追加

まず、XcodeでSingle View Applicationを用いてプロジェクトを作成してください。
これは通常のプロジェクトを作る過程と何ら変わりません(いつもの手順です。)
次にApp Extensionを追加しなければなりません。
手順は下記です。

  1. Show the Project navigator > General > + ボタンを選択
  2. iOS > Application Extension > Today Extensionを選択
  3. 名前をつけて作成(ここではTodayExtensionActivityとします。)

シングルトンパターンとクラスメソッドとインスタンスメソッド

シングルトンを使用したクラスでクラスメソッドとインスタンスメソッドを定義する

本日は、シングルトンを使用したクラスの作成と、その中でクラスメソッドとインスタンスメソッドを定義した場合に、どう扱うのかについて見ていきます。
早速、シングルトンパターンのクラスを定義しましょう。
NSObjectを親クラスとしたSingletonSampleクラスを作成します。

Swiftを使って、位置情報を取得してみよう!

Swiftを使って位置情報を使ってみよう

今日はSwiftを使った位置情報の取得を試してみたいと思います。
今日もObjective-Cの書式と比較しながら進めてみます。

ライブラリのimport

  • Objective-Cの場合
1
2
// ViewController.hファイル
#import <UIKit/UIKit.h>
1
2
3
// ViewController.mファイル
#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>
  • Swiftの場合
1
2
3
// ViewController.swiftファイル
import UIKit
import CoreLocation

Xcode6で様々な画面サイズに対応しよう!

Xcode6でAuto Layoutを使おう!

昨今はiPhone5, iPhone6, iPhone6 PlusなどiOSアプリでも様々な画面サイズに対応する必要性が出てきました。
これまでは2画面の対応だけを考えていれば良かったのに、大きな変化ですよね?
では、この対応をどうすれば良いのかというと、『Auto Layoutを使いましょう』ってことです。

では早速説明していきましょう。
StoryBoard上で右下にあるAuto Layoutボタンをクリックします。
Auto Layout

WKWebViewとUIWebViewのベンチマーク取ってみた(SunSpider 利用)

WKWebViewとUIWebViewのベンチマーク比較

本日はSunSpiderを利用してWKwebViewとUIWebViewのベンチマークを取った結果を紹介したいと思います。
今回はGoogle Octane 2.0と同じく下記条件で試験しました。

利用端末: iPhone5, iPhone6
利用OS: iOS7.1.2, iOS8.0
利用アプリ: Safari, 自作アプリ(内部にUIWebView利用), 自作アプリ(内部にWKWebView利用)

組み合わせは下記です。

  • Safari / iOS7.1.2 / iPhone5
  • UIWebView / iOS7.1.2 / iPhone5
  • Safari / iOS8.0 / iPhone6
  • UIWebView / iOS8.0 / iPhone6
  • WKWebView / iOS8.0 / iPhone6

Swiftを使って、iBeaconのCentralアプリを作ろう!!

Swiftを使ってみよう

さて、本日はSwiftの勉強を兼ねて、iBeaconのCentralアプリを開発してみようと思います。もちろんiOS8に対応したアプリを開発します。
これまで、筆者はまともにSwiftを触ってきませんでした。しかし、今後の動向を考えるに、Objective-Cだけでなく、Swiftでの開発もできるようになっておかないと技術者として危険な気がするのです。もし、数年後にXcode上でObjective-Cのサポートを終了するということになったら、途端にiPhoneアプリが開発できない技術者となってしまいます。

とは言え、何もなしに書き方を勉強しようとしても辛いものがあります。なので、これまでObjective-Cで開発してきたアプリをSwiftに移行するという方法でSwiftを学んでいくこととしました。
では、早速、開発を進めていきましょう!

本ブログでは、Objective-CとSwiftでの書き方を比較しながら進めていきます。
Objective-Cとの比較が不要な方はSwiftの場合の項目のみを読んでください。

WKWebViewとUIWebViewのベンチマーク取ってみた(Google Octane2.0 利用)

WKWebViewとUIWebViewのベンチマーク比較

本日はGoogle Octane2.0を利用してWKwebViewとUIWebViewのベンチマークを取った結果を紹介したいと思います。
まずは、Google Octane2.0とは何かから説明しましょう。
Octane2.0とはGoogleからオープンソース提供している。ブラウザのパフォーマンスを測定するJavaScriptベンチマークスイートのことです。昨年、バージョン2.0が後悔され、これまでのテスト項目13から17への増えました。
では、そのテスト項目とは何があるのか説明しましょう。