カテゴリー : Android

[Android] アプリデザインの参考情報まとめ

Android アプリデザインの参考情報まとめ、というかリンク集

Androidアプリデザインの基礎知識 | ジェネシックスブログ

Y.A.M の 雑記帳: Android UI Design Tips

[Android] OAuth2認証の実装方法

Androidアプリで、OAuth2認証を実装するときに参考になった情報をメモ。

scribe-javaを使う方法

fernandezpablo85/scribe-java

WebViewを使う方法

琴線探査: AndroidでGoogleのOAuth2認証を行うには?(外部ライブラリ完全非依存版)

AccountManagerを使う方法

琴線探査: AndroidのAccountManagerを使ったOAuth2認証は何だか怪しい

琴線探査: Androidのアカウントマネージャー経由のOAuth2は本当にユーザーフレンドリーなのか?

琴線探査: AndroidのAccountManager経由でGoogleのOAuth2認証を行うには?(外部ライブラリ完全非依存版)

AndroidとiPhoneで使えるURLスキーム起動&アプリ未ダウンロードならストアへリダイレクトするJavaScriptサンプルコード

Android と iPhone で使える URL スキーム起動&アプリ未ダウンロードならストアへリダイレクトするJavaScriptサンプルコードをご紹介します。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>URL scheme / Redirect Test</title>
 
    <script type="text/javascript">
    var userAgent = navigator.userAgent.toLowerCase();
 
    window.onload = function(){
 
      if (userAgent.indexOf("android") > -1) {
        // Launch myapp via URL scheme
        launch_frame.location.href= "myapp://";
 
        setTimeout(function(){
          // Open App DL page in Google Play
          location.href= "http://market.android.com/details?id=com.example.myapp";
        } , 500);
      } else if (userAgent.search(/iphone|ipad|ipod/) > -1) {
        // Launch myapp via URL scheme
        launch_frame.location.href= "myapp://";
 
        setTimeout(function(){
          // Open App DL page in iTunes Store
          location.href= "itmss://itunes.apple.com/us/app/myapp/id123456789?ls=1&mt=8";
        } , 500);
      }
 
    }
    </script>
 
  </head>
 
<body>
  <div style="width:0; height:0; overflow:hidden;">
  <iframe id="launch_frame" name="launch_frame">
  </iframe>
  </div>
</body>
 
</html>

[Android] Application#onCreate は Activity, Service, Receiver オブジェクトが生成される前に呼び出される

Android アプリ開発にて、Application#onCreate は Activity, Service, Receiver オブジェクトが生成される前に呼び出されるみたいです。

public void onCreate ()

Called when the application is starting, before any activity, service, or receiver objects (excluding content providers) have been created.
Implementations should be as quick as possible (for example using lazy initialization of state) since the time spent in this function directly impacts the performance of starting the first activity, service, or receiver in a process. If you override this method, be sure to call super.onCreate().

[引用元]:Application#onCreate() | Android Developers

例えば、Application#onCreate メソッド内に Google Analytics のアクセス解析処理を書いてたりすると、Service や Receiver オブジェクトが生成される度にトラッキングされてしまいます。

このせいで、アクティブユーザ数やセッション数が異常値になってしまったりするので注意が必要です。

[Android] Google Play で「お使いの端末はこのバージョンに対応していません。」と表示される場合にチェックすべき点

開発した Android アプリが、Google Play で「お使いの端末はこのバージョンに対応していません。」と表示される場合にチェックすべきポイントをメモ。

「お使いの端末はこのバージョンに対応していません。」発生時のチェック項目

下記に、Androidでインストール可能な端末を限定する方法が書かれているので、ここに該当してる項目がないかチェックしましょう。

Android Tips #18 インストール可能な端末を限定する | Developers.IO

カメラ機能を使ったアプリで除外端末になってしまう例

例えば、カメラ機能をマニフェストで要求している場合、カメラを搭載していないAndroid端末は除外対象になってしまいます。

そういう場合は、uses-feature で android:required=”false” を記述する必要があります。

●<uses-permission>を記載して<uses-feature>を記載しなかった場合、自動的に有効になる<uses-feature>がある。

android.permission.CAMERAの例にとると<uses-feature>の記載がなくても以下の機能が有効になります。

<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus"android:required="true" />

どのパーミッションでどの機能が自動的に有効になるかは以下サイトを参考にしてみてください。
http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions

まとめ

カメラや位置情報を使ったアプリだと除外端末が増えてしまうので、しっかり <uses-feature> を確認する必要がありそうですね。

<uses-feature> | Android Developers

必須機能では無い場合、 android:required=”false” を指定して、インストール可能端末を増やして、インストールの機会損失を減らすように心掛けたいものです。

参考情報

Nexus7・N-06D・P-08DにおいてGoogle Playから「端末仕様確認ツール」がダウンロードできない事象について – NTTドコモ開発者情報Blog