23 Mar 2014, 07:35

Programming Mobile Applications for Android Handheld SystemsでAndoroidアーキテクチャの基礎を体系的に学んだ

Androidの学習をcourseraをつかってしました。

[//www.youtube.com/embed/szmWnKKvj9s]

内容

Lecture

<div class="outline-text-3" id="text-1-1">
  <p>
    Android開発で必要な知識を体系的に習得できる。
  </p>

  <p>
    特徴は、知識ベースの網羅的解説。 実際にアプリをつくって楽しみましょうというスタイルとは、正反対。 Androidの構成要素を、毎週少しずつ、徹底的に叩き込まれる感じだ。
  </p>

  <p>
    たくさんの知識を一気に解説してくるので、頭に入りきれない。
  </p>

  <p>
    アダム先生の話し方は、とても形式的。
  </p>

  <p>
    概念の説明、デモアプリの説明、ソースコードの説明、このサイクルが繰りかえされる。 説明のためのフレーズまで、定形的に毎回同じという徹底ぶりだ。
  </p>

  <p>
    ジェスチャーが多めで、しかも週の後半に進にしたがってジェスチャーのレベルが上がっていくのがおもしろい。
  </p>

  <p>
    スライドが白黒で地味なせいもあり、講義を一度きいても不思議とほとんど頭に入らないのが辛い。
  </p></p>
</div></p>

Assignment

<div class="outline-text-3" id="text-1-2">
  <p>
    課題に取り組むことで、知識の整理ができる感じ。課題はPDF 3枚くらいの仕様を実装して、毎週提出する。
  </p>

  <p>
    膨大なサンプルのデモコードが結構役に立つ。これはありがたい。 ネットで見つかるソースよりも、課題のサンプルのほうがやくにたつ。 このコードを見ながら、課題でコピペで使えそうな部分を探す。
  </p>

  <p>
    驚いたことに、課題はすべて自動でテストされるのだ! Robotiumという受け入れテストツールを利用しているようだ。
  </p>

  <blockquote class="twitter-tweet" lang="ja">
    <p>
      CourseraのAndroid講義、Robotiumというテスティングフレームワークを使って自動テストされる。
    </p>

    <p>
      &mdash; きつね (@tsu_nera) <a href="https://twitter.com/tsu_nera/statuses/429948312783822848">2014, 2月 2</a>
    </p>
  </blockquote>

  <p>
  </p>

  <p>
    これは、Androidが吐き出すログをパースして期待通りの結果どうか判定する。Androidテスト技術、恐るべし。
  </p>

  <p>
    あと、掲示板に先生みずから頻繁にコメントしているのもうれしい。
  </p></p>
</div></p>

感想

Android開発は期待していたほどおもしろくない、ということが分かった。 いや、おもしろいアプリをつくっていないからかもしれない、けど。

副読本として参考書も読みつつ進めた。 このAndoroidの本も、同じように網羅的なので、講義との相性はいいかも。電子書籍版を買った。

<div class='amazlink-box' style='text-align:left;padding-bottom:20px;font-size:small;/zoom: 1;overflow: hidden;'><div class='amazlink-list' style='clear: both;'><div class='amazlink-image' style='float:left;margin:0px 12px 1px 0px;'><a href='http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Android-Zigurd-Mednieks/dp/4873115353%3FSubscriptionId%3DAKIAJBCXQ4WQGJ7WU3WA%26tag%3Dsleephacker-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873115353' target='_blank' rel='nofollow'><img src='http://ecx.images-amazon.com/images/I/51kRjx9TAzL._SL160_.jpg' style='border: none;' /></a></div><div class='amazlink-info' style='height:160; margin-bottom: 10px'><div class='amazlink-name' style='margin-bottom:10px;line-height:120%'><a href='http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Android-Zigurd-Mednieks/dp/4873115353%3FSubscriptionId%3DAKIAJBCXQ4WQGJ7WU3WA%26tag%3Dsleephacker-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873115353' rel='nofollow' target='_blank'>プログラミングAndroid</a></div><div class='amazlink-powered' style='font-size:80%;margin-top:5px;line-height:120%'>posted with <a href='http://amazlink.keizoku.com/' title='アマゾンアフィリエイトリンク作成ツール' target='_blank'>amazlink</a> at 14.02.23</div><div class='amazlink-detail'>Zigurd Mednieks<br /></div><div class='amazlink-sub-info' style='float: left;'><div class='amazlink-link' style='margin-top: 5px'><img src='http://amazlink.fuyu.gs/icon_amazon.png' width='18'><a href='http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Android-Zigurd-Mednieks/dp/4873115353%3FSubscriptionId%3DAKIAJBCXQ4WQGJ7WU3WA%26tag%3Dsleephacker-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873115353' rel='nofollow' target='_blank'>Amazon</a> <img src='http://amazlink.fuyu.gs/icon_rakuten.gif' width='18'><a href='http://hb.afl.rakuten.co.jp/hgc/g00q0724.n763w947.g00q0724.n763x2b4/archives/c=http%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F11570632%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Frms%2Fmsv%2FItem%3Fn%3D11570632%26surl%3Dbook' rel='nofollow' target='_blank'>楽天</a></div></div></div></div></div>

この講座を受けて一番よかったのは、Androidの設計思想、MvCを勉強できたことだ。 Androidというシステムのなかで、オブジェクトがいかにしてやりとりしているかが分かった。

それぞれのAPIのつかいかたは時間がたつと忘れてしまうけれども、 大枠のAndroidアーキは頭に残り、またこれからにも役立っていくだろう。

08 Feb 2014, 07:16

Androidタブレット ASUS Nexus 7 (2012) を買ったよ

先週のことだけれども、Androidアプリの学習がしたいので、NEXUS7を購入した。

今までは、iPhoneとiPadで身を固めたAppleユーザだった。 しかし、12月ごろからAndroidの勉強をcourseraを利用して勉強しているので、Androidデバイスがどうしても欲しかったのだ。 Androidはシミュレータを利用すればデバイスを持っていなくても開発できるが、それでは心が悲しみで満たされる。

ヨドバシで購入した。値段は何と3000円!

もともとが15000円だけれども、WIMAX同時契約で5000引き、ヨドバシポイントで7000円引きだ。 ただし、e-mobile解約金を15000円払ってWIMAXに乗り換えたので、得したのか損したのか良く分からない。

クワッドコア、32GBで15000円。安い理由は、一年前の型落モデルなので。最新ではないか、開発用に利用するには十分だ。

Amazonから持ってきたスペックもメモしとく。

ブランドASUSTek

商品重量340 g

商品の寸法12 x 19.8 x 1 cm

メーカー型番NEXUS7-32G

カラーブラウン

商品の寸法 幅 × 高さ19.8 x 10 mm

画面サイズ7 インチ

解像度800×1,280

CPUブランドNVIDIA CPU

速度1.3 GHz RAM

容量1000 MB

HDD容量32 GB

HDDインターフェースSolid State

ワイヤレスタイプ802.11bgn

OSAndroid 4.1

充電時間4 時間

バッテリー寿命9.5 時間

リチウム電池1 watt_hours

リチウム電池パックbatteries_contained_in_equipment

リチウム電池 電圧1

V リチウム電池重量1 g

リチウムイオン電池数1

02 Feb 2014, 12:28

プログラミングできなくてもAndroidアプリができる!Courseraの「Creative, Serious and Playful Science of Android Apps」を受けた

Androidのアプリを作りたいので、Courseraでイリノイ大学のAndroidアプリ製作の講義を受けた!

[//www.youtube.com/embed/6rTbNJsztUU]

初心者にもやさしいAndroid講義

この講義は、以下の2つに分かれているところが特徴。

  • 非プログラマ向けの講義 : 1week – 5week
  • プログラマ向けの講義 : 6week – 9week

前半の1-5weekの講義が終わると、一応講義としても終了の単位がもらえる。後半は意欲があるひとのみが挑戦できるが、成績には影響しない。 怠惰な自分は前半の講義のみを受講したので、感想も前半部分の内容のみということで。

内容は、非プログラマにも理解できるようにということで、とてもやさしくて、丁寧。Javaの文法や、Eclipseの使い方などなど、一つ一つわかりやすく解説される。 しかし、EclipseやJavaに慣れ親しんでいる自分としては、講義の速度が遅く、物足りない部分も多々あった。 そういう人のために、後半の講義も用意されているのだと思う。

開発環境まわりでハマっても、Discussion Forumsをのぞくと大抵解決方法が見つかる。なにしろ、10万人が参加しているのだ。

自分と同じところでハマっている人は五万といる。 StackOverFlowで探すよりも、Forumで探した方がよい。ここが、MOOCの凄さ。

宿題はアプリ製作

Assignmentは、もちろんAndroidアプリ製作だ!5weekを通して、Lectureで3本、Assignmentで4本のアプリをつくる。

一番はじめの講義で、開発環境を整えた。記事にもまとめた。

Eclipse ADTでつくるAndroidエミュレータ開発環境構築メモ(Windows) | Futurismo

それから、2,3回目の講義で、基本的なアプリ製作の流れが解説される。そして、宿題で2本のアプリをこなす。 4,5weekの講義では、音楽や画像をつかうライブラリの解説や、Activityの制御など、やや本格的なものが解説されて、それをベースに宿題で2本のアプリをつくる。

Assignmentが終了すると、PairReviewもある。これは、別の人のつくったアプリをお互いに評価し合う。知らない国の知らない人のアプリを見るのはおもしろかった。

以下、Assignmentで作成したアプリのスナップショット。

ShannonKnuth

<div class="outline-text-3" id="text-2-1">
  <p>
    CS分野で有名な偉人を2人選んで、その紹介ページを作成する。これはWebベージをつくるようなお手軽な課題だった。
  </p>

  <p>
    <img alt="" src="http://lh6.ggpht.com/-3OADb9oo8ew/Uu5IvqNp5rI/AAAAAAAABBA/9CjaGYSrPAs/b69dfd00754411e3a3a1412d6a21891f.png" />
  </p>
</div>

Maracas

<div class="outline-text-3" id="text-2-2">
  <p>
    自由課題。Android端末の向きを変えるとマラカスの音がなるというくだらないアプリ。portrateとland-scapeの制御を応用。
  </p>

  <p>
    <img alt="" src="http://lh6.ggpht.com/-GYnTyQ-dydg/Uu5JEJ8ziRI/AAAAAAAABBI/87anf9TTpjE/7e37c85075cc11e3bdef9f148d21a5b9.png" />
  </p>
</div>

MisteryTures

<div class="outline-text-3" id="text-2-3">
  <p>
    4つのlayoutが渡される。ホームのlayoutから4つのページに遷移するようなアプリを作る。それぞれのページで音をならしたり、JavaScriptのゲームを動かしたりと。 ここでは、Activityの制御を応用する。
  </p>

  <p>
    <img alt="" src="http://lh3.ggpht.com/-cVD572_tZ3g/Uu5JRYh7bBI/AAAAAAAABBQ/kQ3G5nozJ-g/4a68d210868611e3a7c56f69d855062b.png" />
  </p>
</div>

RosenKavalier

<div class="outline-text-3" id="text-2-4">
  <p>
    自由課題。オペラ「ばらの騎士」のCDレビューを買いて、適当に音楽を鳴らしてwebページ遷移を作成した。時間がないので、手抜きの突貫工事・・・お恥ずかしい。
  </p>

  <p>
    <img alt="" src="http://lh6.ggpht.com/-pULzIWGlVto/Uu5Jaie53nI/AAAAAAAABBg/6lWxVCgrKAA/18e27c90868711e3a36ccd7596303339.png" />
  </p>
</div>

おわりに

本当に簡単なならば製作できるスキルはつく。しかし、本当に簡単なアプリしかできないため、売れる気がしないが・・・、いやアプリ製作はアイデア勝負か??

Androidアプリはファームなので、Android製作は泥臭いものかと思っていた。 しかし、実際にはWebページを製作するような感覚だった。こういうのは実際にやってみないと気づかないことだ。

後半の講義を受けないもう一つの理由は、平行してこっちのAndroidの講義を受けているから。

これからは、こっちの講義で頑張る!

07 Dec 2013, 13:23

Eclipse ADTでつくるAndroidエミュレータ開発環境構築メモ(Windows)

Courseraを通じて、Android開発を勉強しようと思います。

講義では、Android SDKをEclipse込でまるごとダウンロードしてくる方法が紹介されている。

Disk容量が残り8GBしかない自分には、チョット無理ゲーなので、既存のEclipse環境にAndroid SDKをインストールする方法を調べてみた。

Android SDK開発環境の構築作業で自分がやった手順を作業メモメモφ(..)

[toc]

環境

  • Windows 7 64bit
  • Eclipse 4.3 kepler
  • JDK 7

Android SDKとは

Android SDKとは、Android Software Development Kitの略。

Android開発をするためのAPIライブラリやら、その他開発に必要なものがセットになったもの

Eclipseのインストール

なにはともあり、Eclipse All in One Projectから 日本語EclipseJDK環境をまるごと落としてくれる。自分はすでにインストール済みなので、詳細は省略。

JDK 7のインストール

Java開発環境(JDK)をインストールする。現時点(2013)では、Android SDKは、JDK 6を推奨しているよう。ネットの情報では、JDK7 も動作するよう。

以前、JDK7のインストール方法を記事にしているので、基本的にはここを参照。

Android SDKのインストール

まずは、Android SDKのダウンロードページに行く。

青い大きなボタンを押してしまうと、Eclipse込のダウンロードとなるため、下

のほうにある、DOWNLOAD FOR OTHER PLATFORMSを選択。そして、SDK Tools Onlyのしたにあるzipファイル、

  • android-sdk_r22.3-windows.zip

をダウンロード。インストーラ版installer_r22.3-windows.exeもあるけれども、Eclipseからだと、zip版でよい。

ダウンロードが完了したら、適当な場所へ解凍。ここでは以下へ。

C:\android-sdk\android-sdk-windows

Eclipse ADTのインストール

EclipseでAndroid開発を実施するためには、Eclipse Android開発ツール(ADT)のプラグインをインストールする必要がある。

Eclipseのツールバーから

  • ヘルプ > Eclipse マーケットプレイス

を選択。検索欄から、ADT、と入力。Android開発ツールが現れるので、インストール。

SDKマネージャーの操作

Eclipseを再起動すると、先ほどインストールしたSDKのパスを聞いてくるので、入力する。

続いて、SDKマネージャーの起動を要求してくれる。

SDKマネージャーで、追加のSDKをダウンロードする。デフォルトで、アップデートやインストールが必要なものにはチェックがはいる。ここでは、講義に従って、以下をインストール(すでにインストール済みのものも列挙)

  • Tools

    • Android SDK Tools
    • Android SDK Platform-tools
    • Android SDK Build-tools
  • Android 4.3

    • SDK Platform
    • ARM EABI v7a System Image
    • Intel x86 Atom System Image
  • Android 2.3.3

    • SDK Platform
    • Intel x86 Atom System Image
  • Extra

    • Android Support Library
    • Intel x86 Emulator Accelarator

エミュレータの設定

エミュレータ設定する。ツールバー > ウィンドウ > 仮想デバイスマネージャーを選択。新規を選択。

つづけて、エミュレータのスペックを入力していく。ここでは、以下の画像のように入力。

設定が完了したら、開始をクリック。

待つこと数十秒で、エミュレータ起動((o(´∀`)o))

エミュレータの高速化

Intel CPUを利用しているならば、エミュレータを高速化できる。Intel x86 Emulator Accelaratorを利用する。

事前準備として、Intel 仮想化支援機能 Intel VTが有効になっている必要がある。設定方法は、過去記事参照。

以下の場所にあるIntelHaxm.exeを起動して、インストール。

\android-sdks\extras\intel\Hardware_Accelerated_Execution_Manager\IntelHaxm.exe