月別アーカイブ: 2012年11月

Androidアプリを初めて作る

・初歩からスタートするAndroidアプリ開発

Javaの初心者がAndroidアプリを作るには定番のHello Worldを表示させることから始めます。その後、改造を加えて直線と円を描くアプリケーションに挑戦します。

開発環境を整え、以下の手順を踏みます。プロジェクト名にはCanvasSampleを用います。8月初旬に掲載された「Androidアプリ開発環境の構築」の記事もご覧ください。

Javaの文法等はとりあえず置いておいて、サンプルコードを実行させて体験を積み、自信を深め最後には複雑なアプリケーションの開発に到達できるように考えています。

1)ECLIPSEのプロジェクト新規作成画面を呼び出す

ファイル-新規-プロジェクト-Androidアプリケーション・プロジェクト-次へ

上記の操作でプロジェクト新規作成画面が呼び出されるので、所定のパラメータを以下のように入力します。アプリケーション名にふさわしい名前を付けます。CanvasSampleとします。Packege Name接頭部としてcom.exampleはふさわしくないとのアドバイスを受け、com.userに変更します。

Application NameとPackege Nameを入力しBuild SDKの設定後の画面を以下に示します。

2)新規ブランク・アクティビティを作成する

Activity NameにCanvasSampleを指定します。

3)アイコンを設定する

ロボットのようなデフォルトのアイコンでよい場合はすぐに次へを指定しますが、クリップアートからアイコンを選択します。デジタルカメラで撮った写真をアイコンにする場合はイメージを選択してファイルを指定します。

クリップアートの中から今回は星印を選びます。

4)生成されたプロジェクトをビルドしてエラーがないことを確かめて実行する

パソコンと実機をUSBケーブルでつないで実機上での実行結果を以下に示します。開発ツールが生成した諸ファイルにはいっさい手を加えていません。次にCanvasオブジェクトを追加して直線と円を描いてみます。

5)Canvasオブジェクトによる描画用に改造する

WorkSpace\CanvasSample\src\com.user.canvassample\CanvasSample.javaを次のように改造します。ソースコードをコピー&ペーストしても行番号は付きません。


package com.user.canvassample;   // Top of source-code.

import android.app.Activity;
import android.content.Context;
import android.graphics.*;
import android.os.Bundle;
import android.view.View;

// MainClass
public class CanvasSample extends Activity {
/** Called when the activity is first created. **/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// make instance of ViewClass.
MyCircleView view = new MyCircleView(getApplication());
// set View.
setContentView(view);
}
}

// display class
class MyCircleView extends View {
// initialize View
public MyCircleView(Context context) {
super(context);
setFocusable(true);
}

// actualy,method of display.
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// set back-color.
canvas.drawColor(Color.WHITE);
// make display-object.
Paint paint = new Paint();
paint.setAntiAlias(true);
// display circle
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.BLUE);
canvas.drawCircle(300, 250, 100, paint);// circle
// display lines.
paint.setColor(Color.BLACK); // black line
canvas.drawLine(0, 0, 50, 50, paint); // line-1

paint.setColor(Color.RED); // red line
paint.setStrokeWidth(5);
float[] pts = {50, 50, 100, 100};
canvas.drawLines(pts, paint); // line-2

paint.setColor(Color.GREEN); // blue line
paint.setStrokeWidth(10);
float[] pts2 = {100, 100, 150, 150};
canvas.drawLines(pts2, paint); // line-3
}

6)CanvasSample.javaを修正してビルドし実行する

CanvasSample.javaの他は変更を加えません。冗長な部分(Hello world!などのストリングデータは不要)には目をつむります。

7)プロジェクト全体をZIPにして添付する

CanvasSample.javaは5)における修正を加える前のソースファイルにしてあります。6)の実行結果を得るには、5)Canvasオブジェクトによる描画用に改造するのソースコードに切り替えてリビルドしてください。

CanvasSample
プロジェクトすべてのファイルを添付します。

8)ファイル一覧

C:.
│  .classpath
│  .project
│  AndroidManifest.xml
│  ic_launcher-web.png
│  proguard-project.txt
│  project.properties
│  TREE.TXT
│  
├─bin
│  │  AndroidManifest.xml
│  │  CanvasSample.apk
│  │  classes.dex
│  │  jarlist.cache
│  │  resources.ap_
│  │  
│  ├─classes
│  │  └─com
│  │      └─user
│  │          └─canvassample
│  │                  BuildConfig.class
│  │                  CanvasSample.class
│  │                  MyCircleView.class
│  │                  R$attr.class
│  │                  R$drawable.class
│  │                  R$id.class
│  │                  R$layout.class
│  │                  R$menu.class
│  │                  R$string.class
│  │                  R$style.class
│  │                  R.class
│  │                  
│  └─res
│      ├─drawable-hdpi
│      │      ic_action_search.png
│      │      ic_launcher.png
│      │      
│      ├─drawable-ldpi
│      │      ic_launcher.png
│      │      
│      ├─drawable-mdpi
│      │      ic_action_search.png
│      │      ic_launcher.png
│      │      
│      └─drawable-xhdpi
│              ic_action_search.png
│              ic_launcher.png
│              
├─gen
│  └─com
│      └─user
│          └─canvassample
│                  BuildConfig.java
│                  R.java
│                  
├─libs
│      android-support-v4.jar
│      
├─res
│  ├─drawable-hdpi
│  │      ic_action_search.png
│  │      ic_launcher.png
│  │      
│  ├─drawable-ldpi
│  │      ic_launcher.png
│  │      
│  ├─drawable-mdpi
│  │      ic_action_search.png
│  │      ic_launcher.png
│  │      
│  ├─drawable-xhdpi
│  │      ic_action_search.png
│  │      ic_launcher.png
│  │      
│  ├─layout
│  │      activity_canvas_sample.xml
│  │      
│  ├─menu
│  │      activity_canvas_sample.xml
│  │      
│  └─values
│          strings.xml
│          styles.xml
│          
└─src
    └─com
        └─user
            └─canvassample
                    CanvasSample.java

9)補足説明

今回は大きな流れを示すにとどまり、細かな手順やエラーが起きた時の対処法については次回以降になります。図形を描くにはCanvasクラスを用いることを覚えましょう。

Android開発環境の確認と登録

これからAndroidアプリの開発について触れていきます。「あみだくじ」ゲームアプリをGoogle Playに25ドルを払って11月1日に登録し受け付けられました。なかなか公開されませんでしたが手続きに誤りがありました。Googleから注文受付のメールを以下に示します。保存、公開のあと1時間ほどで公開の実効が現れました。Google Playストアから無料でダウンロードできます。

手をこまねいていてはどんどん日が過ぎていくので、今回、使用した開発環境を確認します。8月3日「Androidアプリ開発環境の構築」の記事に追加してあります。そちらもご覧いただけるとありがたいです。

Androidを学ぶにあたり様々な方法があります。ここではCなどのプログラミングの心得が多少なりとも持っていると想定して進めていきます。不明な用語は丁寧に解説しているサイトをご覧いただいてサンプルコードをふんだんに用いコードと実行結果を重視したいと考えています。当初は簡単なサンプルから開始しますが、プロジェクトのすべてを公開します。

JAVAについて何の知識もなく学び始めた経験から、ソースコードのみの公開では不足する情報が多く、コンパイルエラーをなくすことができずそのプロジェクトを断念したことがしばしばでした。周辺知識が豊富になるとすべての公開はあまりにも冗長になり、無駄になると考えJAVA熟達者の多くはソースコードだけの公開になっているようです。プロジェクトのフォルダで重要なものは、gen、res、srcフォルダと考えています。

手作り遊具・竹トンボ

かつて戸外で遊ぶと言えば、身近な生活品を手作りして遊んだものです。竹トンボ、水鉄砲、ゴム銃などなんでも手作りしました。今では部品を調達するよりも完成品を買った方が安い場合が多くなっています。以前は教育的ないし遊具として自然のものを入手することについて周囲の理解があったが、昨今、自然破壊、無断進入などで難しくなっています。また、ナイフは危険であり保護者が使わせない風潮になっています。それでも創造力を養うにはこの上ない行動といえましょう。竹トンボの作り方を指南したサイトがあり、以下に紹介します。
http://members.jcom.home.ne.jp/kobysh/experiment/taketombo/taketombo.html


竹トンボ