読者です 読者をやめる 読者になる 読者になる

ひさしぶりにつ部Android勉強会をやりました&部長交代のお知らせ

260日ぶりにブログを書く理由はタイトルの通りですが、大事なお知らせがあります。

一昨日、ひさしぶりにつ部のAndroid勉強会を行いました。当日の雰囲気はTogetterにまとめましたので合わせてご覧下さい。

当日の資料(ぼくが捕捉できた分だけ)

部長交代のお知らせ

2010年4月の第1回勉強会から約3年間、つ部の部長として運営をサポートしてくださるコアメンバーの方々に支えられながら、目指していた「Androidをキッカケとした楽しく切磋琢磨できるコミュニティを作りたい(参加したい)」という夢が実現でき、そして長くこのつ部を運営できたことは本当に幸せでした。部長というのは名ばかりで何も特別なことはなく、みんなと楽しく過ごしていきたいという気持ちだけで、長く運営していくなかでいろんなことがありましたが、皆さま本当にありがとうございました。

挨拶の中でもお話させて頂きましたが、去年あたりから社会人だけではなく学生の方々にも、つ部を通して何かプラスになることはできないかと考えることが増えていきました。そして、第6回名古屋Android勉強会 Java+Eclipse再入門 学生枠や、第7回名古屋Android勉強会 Java+Eclipse再入門 学生枠のように、学生の方でも参加しやすいように内容を入門レベルにしたり申し込みページを分けたり、懇親会費用を-1,000円(遠方から講師を呼んだ時にカンパで頂いた参加費から余った分を積み立てている運営貯金から補填)したり、個人的には、学生向けスマフォアプリ開発 がぶ塾をやったりしてきました。最近のつ部には、中京大学のLゼミというゼミの子たちがよく参加してくれるようになったのは嬉しい進歩です。

そんな中、一身上の都合(海外に行くかも?)により部長としてアクティブに活動できないだろうと判断し、運営メンバーにも話をして、つ部の新部長は @RINA117yc さんに決まりました。彼女は遠慮がちにそれでも前向きに快諾してくれました。

懇親会の最後に部長交代の発表をしました。彼女は「やさしいつ部にしたい。」と話してくれました。

新しいつ部は、そんな新しい部長をキッカケに、よりやさしいつ部となって楽しく切磋琢磨できる空間として長く続いていくと思います。ぼくは今後もメンバーとして彼女をサポートしていきたいと思います。

ということで、新生つ部をこれからもよろしくお願いします!!!

Android NDK専用本「Android NDK ネイティブプログラミング」の第2版が出ましたよ!

以前にも紹介した Android NDK ネイティブプログラミングの第2版が出ましたよ!

帯がかっこいいー!

ハードウェアの「真の力」を呼び覚ませ!!!

f:id:gabuchan:20121229231239j:plain

Android NDKは以下の機能がAndroid 2.3以降でしか利用できず、Android 2.2をサポートしないのはビジネス的にまずいので、正直Javaコードの一部をC/C++で書くか、C/C++ベースのオープンソースライブラリをビルドして利用するぐらいが現実的にやれることだったのですが、

  • Native Activity
  • OpenSL ES
  • センサーやタッチパネルの読み取り

2012年12月時点で、2.2以下の端末シェアが13.4%、2.3以上の端末シェアが86.6%になってきたので、

f:id:gabuchan:20121229232826p:plain

from: http://developer.android.com/about/dashboards/index.html

いよいよ、CのみでAndroidアプリ(ゲーム)を作れる状況になってきたのではないでしょうか(13.4%をサポートするかどうかはビジネス的に判断する必要はありますが)。

Android NDKでOpenGLやOpenSLを使いたいなら

「Chapter 4 OpenGL|ES」では、OpenGL|ES 1.1と2.0それぞれのサンプルコードを含む解説があります。「Chapter 5 サウンド」では、OpenSL|ESとOpenSL|ES for Androidの違いや基本的な使い方が丁寧に解説されています。

Android NDKでオープンソースライブラリをビルドしたいなら

第2版で追加された「Chapter 12 OSSライブラリを利用する」では、libpngとLuaのビルドと利用例が掲載されているので、オープンソースライブラリをAndroid NDKで使えるようにしたい人には非常に参考になるかと思います。

その他にも

目次は以下のとおりです。

  • Chapter 1 Android NDKとは
  • Chapter 2 JNI(Java Native Interface)
  • Chapter 3 NativeActivity
  • Chapter 4 OpenGL|ES
  • Chapter 5 サウンド
  • Chapter 6 マルチメディア
  • Chapter 7 入出力(センサー、キーボード、ファイル)
  • Chapter 8 ツール(コンパイラ、デバッガ)
  • Chapter 9 アーキテクチャ
  • Chapter 10 最適化
  • Chapter 11 NEON
  • Chapter 12 OSSライブラリを利用する
  • Chapter 13 リファレンス

ということで第1版でも感じた「詳しい、丁寧、深い、濃い」かつ、読みやすい文章のまま最新バージョンにアップデートされた本書でAndroid NDKのお勉強をされてはいかがでしょうか?コラムが意外と知らないことばっかりで個人的には読むだけでも勉強になりました。

Android NDK(エヌディーケー)ネイティブプログラミング

Android NDK(エヌディーケー)ネイティブプログラミング

出版社のWebサイトで詳細な目次を見ることができます。

Android NDKネイティブプログラミング 第2版|書籍情報|秀和システム

著者さまのブログで第1版との差分を見ることができます。

Android NDKネイティブプログラミング第2版が出ました! | Happy my life

ちょっと早いけど今年をふりかえってみる

ちょっと早いけど今年1年を勉強会ライフと共にふりかえってみました。

今年の勉強会ぐあい

1月

正月ぼけで何もしてない

2月

2/4 高専カンファレンス in 岐阜

http://atnd.org/events/23003

『プログラミングと共に歩んできた10年を...(ニーソ)』というタイトルで講演しました。

高専カンファ in 岐阜 #kosenconf でニーソしてきました! - gabuchanの日記

2/18 第4回名古屋Android勉強会 ADKハンズオン

http://atnd.org/events/24616

当日の資料とソースコード: https://github.com/magoroku15/OpenAccessoryDemo

Ustアーカイブ: http://www.ustream.tv/recorded/20520666

Togetter: http://togetter.com/li/259984

まごろく先生ありがとうございました!

3月

3/10 - 11 第4回シャープハッカソン

https://sh-dev.sharp.co.jp/android/modules/bulletin/index.php?page=article&storyid=131

今年一番刺激的で超楽しかったハッカソンでした。燃えたなぁ。

主催のブリリアントサービスさんのレポート: 3月10日-11日に第4回SHARPハッカソン@東広島が開催されました - Android(アンドロイド)情報-ブリリアントサービス

Togetter: http://togetter.com/li/271622

以下、参加したみなさんのレポート(ブリさんのレポートの最後のレポートまとめの方が網羅していると思うので漏れなく読んでみたい方はぜひそちらを)

僕はLiveDecoチームでわかめにディスられながら徹夜でOrmLiteと戦っていたことと日本酒が美味しかったことが感想です。

LiveDecoについてはこちら: 【インタビュー】女子向けサービスをつくるハッカソンで誕生・リリースされたAndroidアプリ「livedeco」と、ハッカソンの心得 | Startup Dating [スタートアップ・デイティング]

4月

4/14 日本Andoroidの会 浜松支部 App Inventor

http://atnd.org/events/26719

4/15 作ればわかる! Google App Engineハンズオン #1(東海GTUG)

http://www.zusaar.com/event/234051

4/21 日本Androidの会 関西支部勉強部屋

http://atnd.org/events/26459

『2.x 3.x 4.x対応Androidアプリ入門(僕とニーソと時々、幼女)』 というタイトルで講演しました。 資料がでかすぎてSlideshareにあげられなかった...

関西支部超楽しかったー!

5月

5/12 オープンソースカンファレンス2012 Nagoya

http://www.ospn.jp/osc2012-nagoya/

つ部メンバーのアプリなどを展示しましたん。

5/27 作ればわかる! Google App Engineハンズオン #2(東海GTUG)

http://www.zusaar.com/event/278004

6月

6/8 Google松内さんによるAndroid/Google Playトーク at 東海GTUG

http://www.zusaar.com/event/308002

松内さんが名古屋に来てくれるという奇跡のイベントが実現できた。お会いできただけで感動。貴重な機会に参加者の皆さんからばんばん質問が出ていたのが印象的だった。懇親会でも松内さんのアツい話が聞けて嬉しかった。松内さんありがとうございました!

Togetter: http://togetter.com/li/317371

レポート:

6/9 第5回名古屋Android勉強会 ActionBarハンズオン

http://www.zusaar.com/event/283004

Togetter: http://togetter.com/li/317834

ざきさんありがとうございました!

6/23 作ればわかる! Google App Engineハンズオン #3(東海GTUG)

http://www.zusaar.com/event/302102

6/27 - 29 Google I/O

https://developers.google.com/events/io/

憧れのGoogle I/Oに行ってきましたよー!超感動。しかし、この間(というか年始から夏ごろまで)執筆に追われていてブログ書いていなかったという残念っぷり。今度、思い出しながら書くかー。。。

ちなみに、2013年のGoogle I/Oは、5/15 - 17で決定!

7月

7/8 DevFestX Google I/O 2012 報告会

http://googledevjp.blogspot.jp/2012/06/devfestx-japan-2012-summer.html

Togetter: http://togetter.com/li/334600

7/29 NFCLAB 名古屋勉強会

http://atnd.org/events/30736

NFC触りたい。。。

8月

8/4 第1回AndroiderのためのiOS入門勉強会

http://www.zusaar.com/event/342010

参加したかった... 8月は個人的に魔の8月だった...

9月

9/15 - 17 Android温泉2012夏の陣&つ部温泉

http://www.zusaar.com/event/248052

参加したかった... 友人の結婚式と被った...

9/23 - 25 悔しかったので会社の同僚と(男4人で)湯布院へ

10月

10/13 スタートGo #0 GDG名古屋

https://plus.google.com/u/0/events/cg969opina8t6l5lmbjmrs4vrss

上田先生とGo言語できゃっきゃうふふした。

11月

11/17 第6回名古屋Android勉強会 Java+Eclipse再入門

http://www.zusaar.com/event/429003 (一般枠) http://www.zusaar.com/event/430005 (学生枠)

資料: Android再入門 - 目次 #Android - Qiita

いつの間にか100ブクマ超えてた!

この資料は1つの実験で、何冊か書籍を書いてきた身として技術本はWebページの方がメリットが多いんじゃないかと思い、原稿を書く姿勢でエントリーを書いてみた実験だったりするのですが、また別の機会に動機とか整理して書いてみよう。

11/30 つ部 × Multi-Screen UX Competition トークライブ

http://www.zusaar.com/event/448004

コンセントの長谷川さんとバイドゥの矢野さんが名古屋に来てくれるという貴重なイベントができた。内容も勉強になることだらけで、個人的には、IA (インフォメーションアーキテクチャ) についてすごく興味が沸く刺激を受けることができました。

Togetter: http://togetter.com/li/418349

KPT

Keep

よかったこと。続けたいこと。

  • やりたいことができて良かった
    • やりたいこと = Android関係の技術, Google I/Oに行く, 勉強会ライフを楽しむ
  • これからの学生さんに分かりやすく技術を伝えるということ
    • 第6回名古屋Android勉強会 Java+Eclipse再入門で「学生枠」という募集の仕方は「参加しやすかった」という声も聞けて、やって良かった。
    • まごろく先生のアイデアに感謝。
  • ハッカソンが一番楽しかった(燃える)
  • IAについて触れた
    • 個人的にすごく興味があるので続けて勉強したい
  • 忙しい時につ部メンバーの皆さまが運営をしてくれたので非常に助かった。
    • ひでぽんさん、いおりさん、まごろく先生、たんさん、恐竜先生、皆さまに感謝。

Problem

問題だったこと。

  • 月に1つぐらいが限界だった。
    • 原因: 主催、運営に偏っているし、執筆も仕事もあるから問題ではなく現実的(時間的)に限界なのかも。限界というかそれ以上増やしたいわけでもないし、問題ではないのかも。でも、月に1つぐらいでも忙しく感じるのはなんでだろう。
    • 対策: 主催、運営のペースを落としてその代わりに質を上げる。毎回規模が大きいと疲れるので、軽いもの、軽いもの、しっかりしたもの、というループがいいかも。ということは、つ部のスタイルは良いカタチになってきているのか。
  • 続けられてないものがある。(ADKとかNFCとか)
    • 原因: 手を広げすぎて時間が足りない。他の技術に充てる時間を減らすほど優先順位が上がっていない。
    • 対策: 興味があるものは多いけど「選択と集中」を意識する。量と質のバランス大事。
  • アプリやサービスなどアウトプットがない(仕事以外の)
    • 原因: 勉強会とアウトプットのバランスが悪い。時間の配分。
    • 対策: 勉強会の開催、参加をもう少し減らして、開発の時間を確保する。勉強会をハッカソン化するとか。

Try

来年やりたいこと

まとめ(まとまってないけど)

ということで今年も皆さまのおかげで勉強会充でした。ありがとうございました。少し早いけど来年も宜しくお願いします!!!一緒に勉強会充しましょうヽ(´ー`)ノ

「Android SDK開発のレシピ」が第2版になりました。

Android

Android SDK開発のレシピ

Android SDK開発のレシピ

人生初の執筆 「Android SDK開発のレシピ」という本を書きました。 - gabuchanの日記 から2年経ち、Androidのバージョンも上がり、当時と様々な状況が変わったため本書の大幅な改訂をいたしました。
しかし、ただのAndroidのバージョンアップ対応の改訂ではなく、現在のAndroidアプリ開発の状況を踏まえ全てのレシピを見直し、新しい要素も取り入れた結果、半分以上が新規レシピとなりました。

特に、Androidアプリ開発で最大の問題になる「Androidバージョンのフラグメンテーション(断片化)問題」を解決するため、Support Packageを使用することを前提として、本書はAndroid 2.2以降をサポートします(一部、2.3以降のレシピがありますがその数は少ないです)。

Support Packageを使っているレシピ

  • レシピ029, 030: Fragment
  • レシピ035: NotificationCompat
  • レシピ042, 043: ViewPager, PagerAdapter, FragmentPagerAdapter
  • レシピ112: ListFragment

などなど

はじめに

本書はAndroid初心者本の次に読んで頂くことを想定した本です。いわゆる逆引き系の本で「こうこうするには?」という単位で130個のレシピを収録しています。本書の他にもAndroidの逆引き本はいくつかありますが、本書は以下のような思いを込めて書きました。

  • 解説が必要なレシピは解説を厚く
  • 仕事でAndroidアプリを書いてきた経験をできるだけ盛り込む
  • 機種依存などいわゆるバッドノウハウもできるだけ盛り込む
  • 遊び心を忘れない

Androidアプリを趣味で開発される方にも、仕事で開発される方にも少しでもお役に立てば幸いです。

レシピを1つ公開

出版社さんが「レシピ127 多くの端末で動作するようにする」のPDFを用意してくださったので公開します。本書の雰囲気を掴んでいただけると思います。ぜひご覧ください。

レシピ127 多くの端末で動作するようにする(PDF注意)
gabubon2_recipe127.pdf 直

サンプルコード

初版同様にサンプルコードはGitHubで公開しています。
https://github.com/gabu/gabubon2

初版はレシピごとにAndroidアプリになっていたのですが、第2版では1つのAndroidアプリにまとめました。
サンプルコードを実際にAndroidアプリで動くかたちにしたサンプルアプリをGoogle Playでも公開しています。
https://play.google.com/store/apps/details?id=net.gabuchan.androidrecipe

こんな感じでレシピごとの動作を実際に動かして見ることができます。







目次

以下が全130レシピの見出しです。第2版で追加されたレシピを赤くしました。もちろん赤くない既存のレシピも改訂に合わせて見直し更新されています。

  • Chapter 01 開発環境のレシピ
    • レシピ001 Eclipseの設定を行う New!
    • レシピ002 Eclipseのショートカットを活用する New!
    • レシピ003 コードスタイルガイドラインを参考にする New!
    • レシピ004 Android本家のフォーマッターを使う New!
    • レシピ005 コマンドラインからビルドする
    • レシピ006 テストプロジェクトでユニットテストを行う
    • レシピ007 monkeyでストレステストを行う New!
    • レシピ008 monkeyrunnerでシナリオテストを行う New!
    • レシピ009 Jenkinsでビルドする New!
    • レシピ010 ProGuardで難読化する New!
    • レシピ011 Traceviewでボトルネックを発見する New!
    • レシピ012 DDMSとMATでメモリリークを発見する New!
    • レシピ013 Lintでソースコードをチェックする New!
    • レシピ014 端末内のファイルにアクセスする
    • レシピ015 デバッグ時のみ有効な処理を作る
  • Chapter 02 ウィジェットのレシピ
    • レシピ016 ボタンを使う New!
    • レシピ017 イメージボタンを使う New!
    • レシピ018 イメージビューを使う New!
    • レシピ019 テキストビューを使う New!
    • レシピ020 エディットテキストを使う New!
    • レシピ021 ラジオボタンを使う New!
    • レシピ022 チェックボックスを使う New!
    • レシピ023 スピナー(セレクトボックス)を使う New!
    • レシピ024 トグルボタンを使う New!
    • レシピ025 レイティングバーを使う New!
    • レシピ026 シークバーを使う New!
    • レシピ027 アナログ時計を使う New!
    • レシピ028 デジタル時計を使う New!
  • Chapter 03 UIのレシピ
    • レシピ029 日付選択ダイアログボックスを使う New!
    • レシピ030 時刻選択ダイアログボックスを使う New!
    • レシピ031 ウェブビューで指定したURLを表示する New!
    • レシピ032 ウェブビューで用意したHTMLを表示する New!
    • レシピ033 入力補完エディットテキストを使う New!
    • レシピ034 トーストを表示する New!
    • レシピ035 ノーティフィケーションを表示する New!
    • レシピ036 メニューを表示する New!
    • レシピ037 プログレスダイアログを表示する
    • レシピ038 確認ダイアログを表示する New!
    • レシピ039 選択ダイアログを表示する New!
    • レシピ040 画像の一覧をグリッドビューで表示する New!
    • レシピ041 カスタムビューをグリッドビューで表示する New!
    • レシピ042 スワイプで切り替わるビューを作成する New!
    • レシピ043 スワイプで切り替わるタブと処理を作成する New!
    • レシピ044 画面の回転をロックする
    • レシピ045 横画面用のレイアウトを用意する New!
    • レシピ046 ステータスバーを非表示にする New!
    • レシピ047 タイトルバーを非表示にする New!
    • レシピ048 アプリ起動時にスプラッシュ画像を表示する New!
    • レシピ049 ビューをアニメーションする
  • Chapter 04 ListViewのレシピ
    • レシピ050 ListViewを表示する
    • レシピ051 表示内容をカスタマイズする
    • レシピ052 タップ、ロングタップを検知する
    • レシピ053 最後までスクロールしたことを検知する
    • レシピ054 次のX件を読み込む
    • レシピ055 所定の位置までスクロールさせる
    • レシピ056 画面が回転してもデータを保持する
    • レシピ057 アプリが終了してもデータを保持する
  • Chapter 05 画像のレシピ
    • レシピ058 端末の解像度に合わせて画像を表示する
    • レシピ059 拡大されても綺麗な画像(9-patch)を作る
    • レシピ060 画像をリサイズする
    • レシピ061 画像を切り取る
    • レシピ062 画像を回転する
    • レシピ063 画像を合成する
    • レシピ064 画像をSDカードに保存する New!
    • レシピ065 ギャラリーから画像を選択する
    • レシピ066 サムネイルを取得する New!
    • レシピ067 JPEGファイルからExif情報を取得する New!
  • Chapter 06 マルチメディアのレシピ
    • レシピ068 効果音を再生する
    • レシピ069 音声ファイルを再生する
    • レシピ070 マイクから録音する
    • レシピ071 動画を撮影する
    • レシピ072 動画を再生する
    • レシピ073 ビジュアライザで波形を表示する New!
    • レシピ074 イコライザで音を変化させる New!
  • Chapter 07 カメラのレシピ
    • レシピ075 カメラアプリで写真を撮影する
    • レシピ076 カメラのプレビュー映像を表示する
    • レシピ077 カメラのプレビュー映像にビューを重ねる
    • レシピ078 写真を撮影する New!
    • レシピ079 オートフォーカスを使う New!
    • レシピ080 フラッシュを使う New!
    • レシピ081 フォーカスモードを使う New!
    • レシピ082 フロントカメラを使う New!
  • Chapter 08 センサーのレシピ
    • レシピ083 加速度センサーを使う
    • レシピ084 近接センサーを使う
    • レシピ085 明るさセンサーを使う
    • レシピ086 端末の傾きを取得する
    • レシピ087 方位を取得する
    • レシピ088 位置情報を取得する
    • レシピ089 シェイクを検知する
  • Chapter 09 インテントのレシピ
    • レシピ090 ブラウザを呼び出す
    • レシピ091 電話を呼び出す
    • レシピ092 Googleマップを呼び出す New!
    • レシピ093 共有機能を呼び出す New!
    • レシピ094 音声認識を呼び出す
    • レシピ095 メールを送信する
  • Chapter 10 データベース(SQLite)のレシピ
    • レシピ096 データベースをオープンする
    • レシピ097 テーブルを作成する
    • レシピ098 レコードを追加・更新・削除する
    • レシピ099 レコードを検索する
    • レシピ100 テーブルを変更する
    • レシピ101 検索結果をListViewに表示する
  • Chapter 11 (その他)便利なレシピ
    • レシピ102 アプリケーションの終了を検知する
    • レシピ103 自動的にスリープしないようにする
    • レシピ104 URLエンコードする
    • レシピ105 プリファレンスにデータを保存する
    • レシピ106 XMLをパースする
    • レシピ107 文字列からMD5を取得する
    • レシピ108 設定画面を作成する
    • レシピ109 ZIPファイルを解凍する
    • レシピ110 JSON形式のデータを扱う
    • レシピ111 正規表現を使う
    • レシピ112 連絡先の一覧を表示する
    • レシピ113 ネットワークの接続状況を判定する
    • レシピ114 Twitter4Jを使う
    • レシピ115 アプリをSDカードに移動できるようにする New!
    • レシピ116 Backup Serviceで自動バックアップする New!
    • レシピ117 Download Managerで簡単にダウンロードする New!
    • レシピ118 設定画面を呼び出す New!
    • レシピ119 Google Analyticsで分析する New!
    • レシピ120 AdMobの広告を組み込む
  • Chapter 12 開発者ライフを充実させるレシピ
    • レシピ121 効率よく必要な情報を手に入れる New!
    • レシピ122 ブログを書く New!
    • レシピ123 ソーシャルネットワークを活用する New!
    • レシピ124 勉強会やイベントに参加する New!
    • レシピ125 どうしても困ったらメーリングリストで相談する New!
  • Chapter 13 世界に羽ばたくアプリを創る
    • レシピ126 デザインをブラッシュアップする New!
    • レシピ127 多くの端末で動作するようにする New!
    • レシピ128 Google Playでアプリの魅力を伝える New!
    • レシピ129 アプリの公開を発表する New!
    • レシピ130 ローカライズをして世界に発信する New!

Android SDK開発のレシピ

Android SDK開発のレシピ

最小限のJavaも一緒に解説するAndroid入門本を書きました。

Android

2010年8月 「Android SDK開発のレシピ」という本を書きました。 - gabuchanの日記
2011年8月 App Inventor入門本を書きました。Androidアプリを作ってみませんか? - gabuchanの日記

と、まさか、1年に1冊ペースで本を書くなんて思ってなかったのですが、それぞれの本を書いたことには理由があります。そして、本書が人生で3冊目のAndroid本になります。

楽しみながら作ってみよう! はじめてのAndroidアプリプログラミング

楽しみながら作ってみよう! はじめてのAndroidアプリプログラミング

どんな本か?

以降、長くなるので先にまとめを書きます。

本書は、1つの電卓アプリを完成させるまでの道のりを追体験できるAndroid入門本です。

空っぽのAndroidプロジェクトから始まり、画面のレイアウト・計算処理・アニメーション・効果音などを機能追加していく際に「どう考えて、どう実装するのか」という「Androidプログラマの頭の中」を知って頂ける珍しい本だと思います。

そして、初心者本にありがちな「読んでみたけど、このあとどうすればいいか分からない」「結局サンプルアプリ以外のアプリは作れない」という行き詰まりになってしまわずに、ちゃんと初心者本を卒業できるように、6章で次のステップに進めるような内容を書きました。

タイトルや表紙から「楽しい・簡単」なイメージを与えてしまいそうですが、実は本気な初心者本です。「楽しみながら」という言葉は、「アプリが機能追加を重ね、どんどん育っていくプロセスが楽しい」という点に掛けています。どんな学習・勉強もそうですが、学習・勉強自体は「楽しい・簡単」なだけではありません。

以降、「はじめに」から抜粋・編集した詳細なご紹介です。

執筆するにあたって

本書が私にとって3冊目の書籍になります。1冊目は、第一線でAndroidアプリ開発をしている方々が現場で便利なレシピを提供するというコンセプトの書籍でした。2冊目は、ソースコードを1行も書かずにAndroidアプリが開発できる「App Inventor」というツールの解説書でした。

私は名古屋でAndroidの勉強会を運営しながら、この2冊の間の段階の人が効率良く勉強する方法をずっと考えていました。つまり、Java(というプログラミング言語)を使って、初めてAndroidアプリを開発する人に最適な書籍や学習方法です。なかでも、Javaを知っている・精通していることを前提としている初心者本が多いことに困っていました。別途、Javaの入門書で勉強するのが筋なのでしょうが勉強したい人のモチベーションは「Javaを勉強したい!」ではなく、「Androidアプリを作ってみたい!」なのです。これでは、Androidアプリを作りたいと思っている人をブーストすることはできません。

本書の特徴

本書はJavaの解説付きAndroid初心者本です。膨大なJavaの言語仕様からAndroidアプリ開発に必要なものだけピックアップして必要なタイミングで解説を添えています。また、Androidアプリ開発に必要な知識というのも膨大です。こちらも、Androidアプリ開発の序盤で知るべきことにフォーカスしています。全てを網羅すると六法全書のような分厚ーーーい辞書のような書籍になってしまいます。それは、本書を終えてからWeb上の情報や他の書籍などで徐々に学んでいくことにしましょう。

さらに、楽しむということもコンセプトにしています。おそらく、網羅性と効率だけを重視して解説書を書くと教科書的になってしまい(それはそれで個人的にはぜひ読みたい書籍ではありますが)、初心者の方は「勉強がしたい!」のではなく「Androidアプリを作ってみたい!」というモチベーションなのだと想定して、「1つのAndroidアプリを完成させるまでに通る道のりを体験してもらう」という点を重視しました。その道のりの中で学ぶ必要があることを解説します。

その反面、初心者本にありがちな「おまじない」「わからなくてもいいので、とにかくこう書けば動きます」を極力なくすように、学ぶ必要がある事柄については逃げることなく1つ1つきちんと説明することにしました。なので、「ちょっと難しくてもちゃんと勉強したい人」に向けて書いています。よく分からなくても「楽々Androidアプリを作ってみたい」という人はその手の書籍をおすすめします。

対象読者

  • Javaを知らない/学校でやったけどよく分かってない人
  • Androidアプリ開発が初めて/挫折した人
  • Androidアプリ開発を楽しみたい人
  • ちょっと難しくてもちゃんと勉強したい人

本の内容

  • 1章では、そもそもプログラミングとは?からJavaの基礎知識、Androidアプリ開発に必要なセットアップについて書きました。
  • 2章では、Androidアプリ開発のもとになるプロジェクトを作り、Androidエミュレータで動かしてみて、簡単な動きを作るまでを行います。
  • 3章では、見た目をかっこよくしたり、アニメーションや効果音を追加して楽しいアプリに進化させます。
  • 4章では、より便利になるように機能面を進化させます。
  • 5章では、最新バージョンであるAndroid 4.0にも対応できるよう進化させます。
  • 6章では、本書を読み終えたあとの皆さんが次のステップに進めるようにと思い書きました。

さいごに

本書が皆さまのAndroidアプリ開発への挑戦の第一歩として少しでもお役に立てれば幸いです。

楽しみながら作ってみよう! はじめてのAndroidアプリプログラミング

楽しみながら作ってみよう! はじめてのAndroidアプリプログラミング

Android 2.xでAction Barが使えるActionBarSherlockの使い方

Android

はじめに

Android Designというページが公開され、ようやくAndroidのデザインガイドラインもまともになりつつあるわけですが、中でもAction Bar | Android Developersは、アプリのUIの中でも最も重要になるデザインパターンではないでしょうか。しかし、このAction Barに関するAPIは、Android 3.0 (API level 11)からしか利用できません。

Androidには、新しいAPIを過去のバージョンでも利用できるようにするためのSupport Packageというライブラリが存在するのですが、残念ながらなぜかAction Barに関するAPIは含まれておらずSupport PackageでAction Barを実装することができません。

ActionBarSherlockとは

ActionBarSherlockは、この問題を解決するために、Support Packageを拡張してAndroidの各バージョンの互換性を保ちながらAction Barを実装できるライブラリです。(Action Bar以外にもいろいろできそうなのですがまだ見きれていないので今日はAction Barについてだけ。)

ダウンロード

http://beta.abs.io/ からダウンロードできます。今日時点ではRC1が最新ですが、3/7に正式リリースされるようです。

ライブラリプロジェクト

ActionBarSherlockは、EclipseAndroidライブラリプロジェクトとして利用します。また、Build TargetがAndroid 4.0(API Level 14)になっているのでインストールしていない場合は、インストールしてください。
.zipをダウンロードして解凍したら、EclipseAndroidプロジェクトを作ります。
「Project Name」に適当な名前を入れて、「Create project from existing source」を選んで、解凍したフォルダの中のlibrary/フォルダを選んで、「Next >」をクリックします。

Android 4.0」を選択して「Finish」をクリックします。

project.propertiesでandroid.library=trueになっているので自動的にAndroidライブラリプロジェクトになります。

ActionBarSherlockを使う側のAndroidプロジェクト

「Project Name」に適当な名前を入れて、「Next >」をクリックします。

ActionBarSherlockとの互換性を考えて使う側もAndroid 4.0(API Level 14)にします。「Android 4.0」を選択して「Next >」をクリックします。

「Package Name」を適当に入れて、Activityの名前を別にそのままでもいいんですが個人的に気になるのでMainActivityにして、「Finish」をクリックします。

プロジェクトのPropertiesを開いて、Libraryの「Add」をクリックして、さきほど作成したActionBarSherlockのAndroidライブラリプロジェクトを選択します。参照パスが気になる場合は、ActionBarSherlockを解凍したフォルダのlibrary/フォルダを適当な場所に移動してフォルダ名をリネームするなりしてください。
追加できたら「OK」をクリックします。


Activityで

MainActivity.javaを開いて、Activityを継承する代わりにSherlockActivityを継承します。ライブラリの設定が正しくできていればCommand+Shift+Oで自動インポートできるはずです。

もう1点、ActionBarSherlockを使う場合は決められたテーマを使う必要があります。(デザインをさらにカスタマイズしたい場合はテーマを継承してスタイルを上書きすることもできると思います。)

また、setTheme()メソッドでテーマをセットするのですが、このメソッドはsetContentView()メソッドよりも先に呼び出す必要があります。

ということで編集後のコードは以下のようになります。

package com.example.helloactionbar;

import android.os.Bundle;

import com.actionbarsherlock.app.SherlockActivity;

public class MainActivity extends SherlockActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	setTheme(R.style.Theme_Sherlock);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

なお、テーマは以下の3つから選ぶことができます。(他にもNoActionBarなどもありますが必要に応じて選択してください。)

Theme_Sherlock

Theme_Sherlock_Light

Theme_Sherlock_Light_DarkActionBar


Android 2.xでもインストールできるように

このままではAndroid 4.0にしかインストールできません。Android 2.xでもインストールできるようにAndroidManifest.xmlでminSdkVersionを指定します。

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14"/>

これでAndroid 2.1以上でインストールできます。もちろん2.3以上で縛ってもいいと思います。

ということでAndroid 2.1のエミュレータでもAction Barが表示できましたよっと!


このあとは

ダウンロードした.zipを解凍したフォルダのsamples/demos/にデモアプリがあるのでこれを見るのが一番確実で速いかと思います。

高専カンファ in 岐阜 #kosenconf でニーソしてきました!

先週末に行われた高専カンファ in 岐阜の基調講演を頼まれたので『プログラミングと共に歩んできた10年を振り返りながら、常に上を向いて技術を磨く大切さ』というタイトルで発表&参加してきました!

  • 勉強会Lifeをふりかえりながら勉強会いいよ!という話
  • Androidライブコーディング
  • iOS/Titanium(ライブコーディングは時間が足りなかったので)軽く見せる
  • プログラマという職業について
  • 高専カンファで同志見つかるといいね!まるっ!

という流れで話しました。

「常に上を向いて技術を磨く大切さ」というタイトルは勢いで付けたのですが、その後、推敲するうちに「コミュニティに参加するといいよ!」という話の方がいいかなぁと思い直し、だいぶそっちよりの内容になりました。

Ust

講演時間が50分あるのですが、まったり話してるので暇な時にまったり見て(聞いて)みてください><

講演ふりかえり

ソフトウェア関係のイベントや勉強会にしか行ったことがなかったので高専カンファもいつものノリで準備して行ったら情報系じゃない人の方が多いんですね!
違う学科の人とかつまんなかったらごめんなさい><
もう少し社会人とは的な話が良かったのかなーでも50分お話聞くだけじゃ面白くないよねーとか勝手に思ったりして。

あと、実行委員のみんなとのミーティングで「他の高専カンファってどんな感じなの?」って聞いて教えてもらった、じゅーんさんのUstアーカイブ http://www.ustream.tv/recorded/2508394 を事前に見たので、てっきりみんなライブコーディングするもんだと思ったよ!釣られたよ!

でも、初めての岐阜での開催に地元(厳密には愛知県名古屋市の僕ですが)の同志として少しでも華を添えられればと思い。また、岐阜高専のみんなに少しでも刺激になればと思いやってみました!

ニーソ

前日

当日の朝

んで、これ

んで、すごい勢いで白ニーソをディスられたので大人げなく

参加ふりかえり

  • 高専カンファ&高専生アツい!
  • 高専生はチート」を身をもって体感。
  • 高専生的にはロボコンが最もアツいっぽい。
  • ロボコン関係がプログラミングよりアツいっぽいので情報系も何かやろうぜ!

実行委員の皆様へ、初めての高専カンファ開催ということでノウハウ0からのスタート本当に大変だったと思います><お疲れ様でした!

実行委員長へ、すげー輝いてたよ!やってやるんだという気持ちが伝わってきた!本当頼もしかった!なにより笑顔が素敵だった!お疲れ様でした!

写真

集合写真

委員長胴上げ

当社比250%ぐらい映りが良かったので記念に