タグ

ブックマーク / grandbig.github.io (9)

  • iBeaconはバッテリを使う?使わない? - Takahiro Octopress Blog

    iBeaconのバッテリ消費量を調査しよう さて、今回はiBeaconを利用したサービスを始める上でネックとなる(正確にはネックと思われがちな)バッテリの消費量について書きたいと思います。 iPhoneでiBeaconを利用する場合、 Bluetooth だけでなく、 位置情報サービス をONにする必要があります。 一般的なユーザのイメージだと、スマートフォンでなるべくバッテリ消費量を抑えたいのであれば、『 Bluetooth や 位置情報サービス をOFFにすべし!!』というのが定説になっていることかと思います。 しかし、開発者からしてみれば、 Bluetooth によるバッテリ消費には疑問があります。というのも現在多くのユーザが持っているスマートフォンでは、搭載されているBluetoothが4.0以上になっていることも珍しくありません。 であるならば、ほとんどのユーザは超低消費電力の

    g08m11
    g08m11 2018/01/23
    “Energy Diagnostics”
  • iOS10とiOS11で比較するUIStackViewのhiddenとConstraintエラー - Takahiro Octopress Blog

    はじめに この記事はiOS2 Advent Calendar 2017の10日目の記事です。 記事では今年発表されたiOS11で改善された UIStackView 周りの Constraint 対応について紹介したいと思います。 UIStackView はiOS8以前に、開発者が AutoLayout を駆使して View と View 間のマージンやパディングを設定していた状況を一変させました。 そんな便利な存在である一方で使い方に慣れるまでに時間がかかったり、なぜかうまくいかないと悩んだりすることもしばしばあることと思います。 その中でも厄介だったのが、 UIStackView の子要素に UIStackView があり、元の UIStackView を非表示にすると Constraint エラーが発生するパターンです。 iOS10で発生するConstraintエラー 例えば、下図の

    g08m11
    g08m11 2017/12/14
  • iOSアプリ内課金: 自動更新購読 - Takahiro Octopress Blog

    アプリ内課金とは アプリ内課金とはiTunes Storeを通してアプリ内の様々なものを購入する機能です。 例えば、 電子書籍アプリの購読 コミュニケーションアプリのスタンプ ゲームアプリの協力なアイテム などが該当します。 2と3に関しては買い切りプランとして、1は一定の購読期間を持ったプランとしてAppleから提供されています。 記事では一定の購読期間を持ったプラン 自動更新購読(Auto-Renewing subscription) について書きます。 自動更新購読(Auto-Renewing subscripion)とは アプリ内課金をアプリに実装する場合、もちろん事前にできる限りのテストをしなければいけません。Appleはテスト用にSandbox環境を用意しています。 では、Sandbox環境と番環境は何が違うのでしょう。 また、アプリがどの状態のときにSandbox環境で試

    g08m11
    g08m11 2017/02/28
  • RxSwiftを勉強してみよう!(1) - Takahiro Octopress Blog

    RxSwiftとは Reactive Extensions(以下、Rx)のSwift版です。 と一言で言っても、「Rxとはなんぞや??」となってしまうかと思います。 (多分に漏れず、筆者もそうです…) そこで、いろいろと調べてみると、 「非同期/イベント/時間に関する処理をLINQの形式で簡潔かつ宣言的に記述すること」ができるのが特徴 観測可能 (observable) なシーケンスと LINQ スタイルのクエリ演算子を使って、非同期なイベントベースのプログラムを合成するライブラリ なんて話が出てきます。 確かに非同期処理はソースコードが複雑になりやすいので、何となくRxは良さそうな気がしてきました。 今回はまず触って慣れてみようということで見ていきましょう。 RxSwiftUI まずはRxSwiftの書き方を覚えるためにUI関連から見てきましょう。 サンプル画面 下記のように画面を作成

    g08m11
    g08m11 2017/01/31
  • AndroidでRealmで保存した値を確認しよう! - Takahiro Octopress Blog

    Android Realm Browserを使おう さて、前回の記事で実装したRealmですが、値を確かめたいことがあると思います。 その方法について見て行きましょう。 Android Realm Browserを利用することでアプリ上で直接、値を確認することが可能です。 実装手順 1. GradleScripts > build.gradle(Module: app) のdependenciesを修正 compile 'com.github.dmytrodanylyk.realm-browser:library:0.0.2'をdependencies { ... }に追加します。 2. RealmFilesActivityを起動する処理を追加 // MainActivity.java public class MainActivity extends Activity { @Overri

    g08m11
    g08m11 2016/11/28
  • jazzyを使って、Swiftで書いたプロジェクトのリファレンスを自動生成しよう! - Takahiro Octopress Blog

    jazzyとは さて、日はjazzyについて書こうと思います。 jazzyはSwiftで書いたプロジェクトのリファレンスを自動で生成できるツールです。 最近、熱いMobile DatabaseであるRealmと同じチームが開発しているようです。 今のところ、他に良さそうなツールはないんじゃないでしょうか? 兎にも角にも、早速使ってみることにします。 jazzyのインストール jazzyのインストールは簡単です。 下記コマンドを実行してください。 sudo gem install jazzy jazzyのコマンド jazzy -hを実行してコマンドを確認してみましょう。 下記のような結果が得られるはずです。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

    g08m11
    g08m11 2016/05/25
  • SwiftでXCTestを使って単体テストとUIテストをしてみよう! - Takahiro Octopress Blog

    iOSアプリケーション開発でのテストとは さて、日はiOSアプリケーションを開発する際のテストについて書きたいと思います。 元々、Objective-Cでは下記のテスト用のライブラリが使われてきました。 Kiwi GHUnit Specta しかし、これらはあくまでもObjective-C時代にApple公式のテストフレームワークが充実する以前から活躍していたものです。今後、Swiftが普及するにつれて、これらのテストフレームワークもSwiftに最適化したものになっていくかもしれません。 とは言え、AppleもいつまでもOSSのテストフレームワークがなければならない状況は避け、Xcode内で完結することを目指していくかもしれません。 後ほど詳しく説明しますが、Xcode7からUIテストが新たに追加されたのも、その流れだと思っています。 日は特に XCTest に焦点をあてた、iOSにお

    g08m11
    g08m11 2016/04/25
  • QuickでSwiftコードのUnitテストをしよう! - Takahiro Octopress Blog

    Quickフレームワークを使おう! 先日、XCTestによるiOSアプリのUnit TestとUI Testについて記事を書きました。 もちろんXCTestを使って、テストをすることに問題はありません。 ですが、XCTestは非常に独特な書式で、初めて使う人には取っ付きにくいかと思います。 そんな中、注目を集めているiOSアプリ用のテストフレームワークがQuickです。 GitHubに書かれている通り、RSpec / Specta / Ginkgoにインスパイアされて開発されているため、親しみやすい書式でテストコードを書くことができます。 (筆者もこれを機に親しもうと思います笑) これまでiOSアプリのテストコードは独特で…と避けてきた方がいましたら、ぜひ Quick を導入してみて頂ければと思います。 Quickの導入方法 では、Quickを導入しましょう。 GitHubにも書いてありま

    g08m11
    g08m11 2016/02/08
  • NSUserDefaultsで手軽にデータを端末保存しよう! - Takahiro Octopress Blog

    最も簡単なデータの端末保存方法を学ぼう! さて、今日はNSUserDefaultsを使った簡単なデータの保存方法について紹介したいと思います。と言っても、当に多くのサイトで十分にわかりやすい説明が書かれているので、要点を絞って簡単に説明したいと思います。 まずは新規にデータを保存する場合です。 NSString型のデータを保存する場合の例を下記に記します。 // NSUserDefaultsの取得 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // データの保存処理 [defaults setObject:@"value" forKey:@"key"]; // 保存の即時反映 [defaults synchronize]; 最後のsynchronizeを利用しないとデータ保存までにタイムラグが発生する可

  • 1