gradle なら AndroidManifest.xml 内 <uses-sdk> が不要だった件

_uses-sdk____Android_Developers

Android Studio が警告なフキダシを出してる.

main_AndroidManifest

記述が2箇所あってきもちが悪かったのですが.

build.gradle

android {
    ...
    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
    }
    ...
}

AndroidManifest.xml

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="19"/>

Android Studio の設定で「バージョン」の記述してるとこありすぎね?

で, AndroidManifest.xml側の記述は不要らしい.

Gradle overrides the manifest values, and I prefer to update build.gradle file rather than manifest. And probably this is the right way using Gradle. Gradle supports product flavours which can be controled via IDE and those product flavors can change many things in our Manifest like package name, version code, version name, target SDK and many other. Then by one click in Android Studio You can change many properties and generate another apk.

You can left the manifest as it is and do all configuration in build.gradle. You can safely remove

<uses-sdk></uses-sdk>

from manifest as well as version codes.

Android studio: why are minSdkVersion and targetSdkVersion specified both in AndroidManifest.xml and build.gradle? - Stack Overflow

Gradle が自動埋め込んでくれるっぽい.

apk化後, バラしてみてみると確認できます.

android-apktool - A tool for reverse engineering Android apk files - Google Project Hosting


Google発「25 Mobile Site Design Principles」のうち特に重要な7つ

services_google_com_fh_files_blogs_principles-of-mobile-site-design-ja_pdf

モバイルサイト設計の指針

今回は、その中でも特に重要な 7 つのヒントをご紹介します。

1. メニューは短く簡潔に

モバイル ユーザーは、長いメニューをスクロールしないと目的の項目にたどり着けないサイトは好みません。メニュー項目はできるだけ簡潔にしましょう。

z7zskDiJSisASIX_Y_eH8gkBT0_Ogymq83-gsCVB4Kv3lZ2KOjrZfCjtmjQSxtDARK-Y-md-JwKe59nbR-yQIYkaRxbzAKJQC_7Y49vWYuC6YX7q3s93xpkjuoohxQL2lQ

2. トップページには簡単に戻れるように

今回の調査で、ページ最上部のロゴをタップしてホーム ページに戻ろうとするユーザーが多く見られました。ユーザーがすぐにトップ ページに戻れる導線を意識しましょう。

fIf4ssc7Ag5r-lVSx8FnN9uy3qYxDZzsSbK7XGOTRPQvFODil5oVieyLEkJkAMoZ8sQLwpUBXNOsLrQAOm6QRifA7Q7wCOYgYVKcs-j6_Gz3EU1ptP0oPHcfrk_bjl8pUg

3. すぐに目につく場所にサイト内検索を設置

サイトでの目的がはっきりしているユーザーほど検索を利用します。モバイル ユーザーが最初に探す機能の 1 つが検索です。今回、調査対象ユーザーから最も良い反応が得られたのは、ページ最上部にはっきりと表示されたオープン テキスト形式の検索ボックスでした。

fiIdUZE1jZYzODSLZae5LWISSboivlt30VnAFzpf4M-FATTSYGFcHEQLo9mI3DCjHD972DDSzy94Iz55lBWv4rfrMr4q7eL6C_zG9VHPtVrnkO5FEwMy5VScc0NV5Jz4jg

4. シンプルな入力方法を提供する

サイトでユーザーに情報を入力してもらう場合、できるだけユーザーの負担を減らす方法を考えましょう。選択肢が少ない場合は、大きいアイコンをタップするだけで済むように、選択肢が多い場合は、プルダウンが最も簡単です。日にちを選ばせる場合には、カレンダーを表示しましょう。

2014-07-31_15-43-52

5. 拡大・縮小いらずで見やすく表示

多くの調査対象ユーザーは、画面を拡大または縮小しなければならない時に不満を感じ、この操作により重要なメッセージを見逃してしまいました。ユーザーがコンテンツのサイズを変更しなくてすむようにモバイル サイトを設計しましょう。一部のモバイル サイトは、画面上で拡大縮小を行えないようにしていました。

NOBHrRb3BPP1BsCREmywY4X8qmUlVdh1UQ6GpjfPeKmipvLwqiPHEesNYsYFDrcY2zhy7oPRzjVDLfnhJNX5BGuk5i6kkEVSC6gjxmItCayZienAHQ7WJguyi23pkxyODg

6. 最適な画面の向きを知らせ

小さい文字を読んだり、動画を観るなど、何かきっかけがない限り、調査対象ユーザーは常に同じ向きで画面を表示する傾向があります。横向きと縦向きの両方に対応できるサイトを設計するか、最適な画面の向きをユーザーに知らせてください。

1evFWegQB6xKVWkuyshjkuWiWMDzGmM3PADDaqk5-m97DHA90LC52NNB1dAkzbQzrPwvPUPwfJ2CQaZdb1uC83E-82XIrK1BgMhD2ZSIZpIb9lhHEz9wuLZ_yy8kuVfnfA

7. 別のウィンドウに移動させない

モバイルではウィンドウの切り替えが面倒なので、ユーザーがサイトに戻ってこないリスクが高くなります。次のページに進んだり、コンテンツの内容が変わっても、同じウィンドウ内で表示する工夫をしましょう。

2014-07-31_15-45-39

ご紹介した全てのヒントに共通しているのは、「モバイル ユーザーは目的がはっきりしている」という点です。モバイル ユーザーがモバイル サイトに求めるのは、目的のコンテンツやサービスをすぐ、簡単に、思いどおりの方法で手に入れること。コンテンツの魅力を損なうことなく、モバイル ユーザーの状況やニーズを考慮してサイトを設計することが成功の秘訣です。

 

以上, Google からのメールの抜粋.


TOEIC「English Upgrader」を Podcast で聴くときに スクリプト がみたい

あちこちで良い評判の TOEIC向け iPhone / Android アプリ

EnglishUpgrader - Google Play の Android アプリ

iTunes の App Store で配信中の iPhone、iPod touch、iPad 用 TOEIC presents English Upgrader

これらアプリで聴くことができる内容は, TORIC SQUARE にて ポッドキャストで配信されているので, iTune や RSS/Podcastクライアントアプリを入れれば聴くことができます.

また, それぞれのスクリプトも以下 TOEIC SQUARE サイトからPDFで取得できるし, mp3ファイルもダウンロードなども.

ポッドキャスト|English_Upgrader_|TOEIC_SQUARE

ポッドキャスト|English_Upgrader_|TOEIC_SQUARE

ポッドキャスト|English Upgrader+|TOEIC SQUARE

2010.02.04 から 2013.03.07 までの間, 5つのシリーズに分けて配信していたようで, 各シリーズの回数は以下.

1st Series - 12回
2nd Series - 15回
3rd Series - 20回
4th Series - 7回
5th Series - 9回

Android版アプリでは 4th Series の第3回までしか聞けないのでそれ以降を聞きたいのであればポッドキャストがおすすめ.

ポッドキャストアプリによっては, それぞれ上記のシリーズ別ダウンロード画面に遷移してくれる機能とかあるので便利.

ちなみに, mp3/pdf のダウンロードURLは以下のような形式.

mp3-prefix
 http://sqm.toeic.or.jp/
pdf-prefix
 http://square.toeic.or.jp/kyouzai/englishupgrader/podcast/media/

 podcast/mp3/vol_12.mp3
 12_script_0.pdf
 podcast/mp3/vol_1.mp3
 01_script_0.pdf

 podcast2/mp3/vol_15.mp3
 02-15_script_0.pdf
 podcast2/mp3/vol_1.mp3
 02-01_script_0.pdf

 podcast3/mp3/vol_20.mp3
 03-20_script_0.pdf

 podcast4/mp3/vol_7.mp3
 EU4-7.pdf

 podcast5/mp3/vol_9.mp3
 EU5-9.pdf

全部聴こうとすると結構な量ですけど.

TOEIC SQUARE[テスト受験や英語学習のサポート]

【英検/TOEIC】英単語・熟語 を 音声付きカードで覚えることができる「Ankidroid (Anki) 」で爆速暗記すべし


【Wearable / Material Design 満載】アプリ「Google I/O 2014」のソースコードが利用可能に

google_iosched 2

google_iosched

google/iosched

毎年ソースコード公開していますが, 勉強になります, これ.

どんな機能があるかを汎用的にまとめると

・ edit your personal schedule
・ Sync your schedule between all of your devices and website
・ View detailed Google+ profiles
・ +1 sessions right from the app
・ Participate in conversations on Google+
・ using the vector-based map
・ Get a reminder in your schedule are due to start
・ View information in the Developer Sandbox
・ Play live video streams
・ Beam from your NFC-enabled device to another using Android Beam
・ Scan on your NFC-enabled device
・ Send feedback from your phone/tablet, or from your Android Wear device

ビルド時の説明も細かくあります.

iosched_BUILDING_md_at_master_·_google_iosched

Building without Android Wear
If you do not wish to build the Android Wear component, you can remove or comment out the following line on android/build.gradle:

wearApp project(":Wearable")

Also, remove ':Wearable' from settings.gradle, leaving only ':android'.

iosched/BUILDING.md at master · google/iosched

確認する価値はあると思われます.

Google announced in a blog post that it has released the source code to the…
Google I/O 2014 App Source Code Now Available | Android Developers Blog


Tinder のような 横スワイプできるカードなUIライブラリ「AndTinder」

こんな人気記事あります.

2日で約3000語を暗記、スマフォ世代の英単語学習アプリ「mikan」はTinderライク - TechCrunch

mikanでは左右にスワイプすることで次々とカードをめくっていくようなUIを採用している。これは、去年あたりからアメリカの若者の間で流行している出会いアプリの「Tinder」が生み出し、多くのアプリが採用しているスマフォ・ネイティブといっていいUIだ。

「素早く振り分けができる」てことなのだろうが, Yes/No ボタンでも同じじゃね?

などと思いつつ, ライブラリを探す.

Swipeable-Cards/AndTinder at master · kikoso/Swipeable-Cards

20140730-133942

20140730-133956

20140730-134023

20140730-134040

使い方は簡単で,

レイアウト内に View コンテナとして埋め込んで,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:app="http://schemas.android.com/apk/res-auto"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical">

    <com.andtinder.view.CardContainer
        android:id="@+id/layoutview"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>
</LinearLayout>

利用 Activity でカード内のテキストと画像を指定.
スワイプ処理の Listener もここで.

public class MainActivity extends Activity {

  private CardContainer mCardContainer;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.mainlayout);

    mCardContainer = (CardContainer) findViewById(R.id.layoutview);

    Resources r = getResources();

    SimpleCardStackAdapter adapter = new SimpleCardStackAdapter(this);

    adapter.add(new CardModel("Title1", "Description goes here", r.getDrawable(R.drawable.picture1)));
    adapter.add(new CardModel("Title2", "Description goes here", r.getDrawable(R.drawable.picture2)));
    ...

    cardModel.setOnClickListener(new CardModel.OnClickListener() {
      @Override
      public void OnClickListener() {
        Log.i("Swipeable Cards","I am pressing the card");
      }
    });

    cardModel.setOnCardDimissedListener(new CardModel.OnCardDimissedListener() {
       @Override
       public void onLike() {
         Log.i("Swipeable Cards","I like the card");
       }

       @Override
       public void onDislike() {
         Log.i("Swipeable Cards","I dislike the card");
       }
    });

    adapter.add(cardModel);
    mCardContainer.setAdapter(adapter);
  }
}

このUI, 実際使ってみると, 気持ちよすぎてクセになるんだわー

Tinder