Android Developer Fundamentalsをやる②

引き続きやっていきます。

Lesson 2: Activities

2.1: Create and Start Activities · Android Developer Fundamentals Course – Practicals

インテントとライフサイクル。

明示的インテント

https://gyazo.com/c849c34fa085f7d35adc8c926b5bc9f9

暗黙的インテント

https://gyazo.com/f172ecd03fd4ef91e9fa1cdd6037aa1f

Androidのライフサイクルはなかなか暗記できないので、図をプリントアウトして見えるところに貼っておく。

Homework Lesson 2

Homework Lesson 2 · Android Developer Fundamentals Course – Practicals

練習問題1

Lesson1でつくったHello Toastアプリを改造してSAY HELLOボタンをおすと新しいActivityに移動して現在のカウントを表示せよ。

https://gyazo.com/d24ba3ed30a560c1fea7c8ce49b34eae

MainActivity.java

   public class MainActivity extends AppCompatActivity {

    public static final String EXTRA_MESSAGE = "com.example.android.hellotoast.extra.MESSAGE";
            

    public int mCount = 0;
    private TextView mShowCount;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       mShowCount = (TextView) findViewById(R.id.show_count);
    }

    public void hello_btn_tapped(View view) {
        Intent intent = new Intent(this, Second.class);
        String score = mShowCount.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, score);
        startActivity(intent);
    }

    public void count_btn_tapped(View view) {
        mCount++;
        if (mShowCount != null) {
            mShowCount.setText(Integer.toString(mCount));
        }
    }
}

Second.java

   public class Second extends AppCompatActivity {

    private TextView mTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        mTextView = (TextView) findViewById(R.id.result_tv);

        Intent intent = getIntent();
        String score = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
        mTextView.setText(score);

    }
}

練習問題2

Lesson2でつくったImplicitIntentsアプリを改造して、カメラアプリケーションを起動せよ。
https://gyazo.com/b6e394e693f1c06a04710b59ef8bbdb5

MainActivity.java

   public class MainActivity extends AppCompatActivity {
   
   // 省略
   
   public void openCamera(View view) {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivity(intent);
    }
  }

Android Developer Fundamentalsをやる

先日開催されたDroidKaigi 2017のスライド一覧を眺めていたら、こちらのスライドを発見。

speakerdeck.com
UdacityのAndroid Basicコースなどは知っていたが、本家Googleの実践コース(?)みたいなサイトが無料で公開されているのは知らなかった。

www.gitbook.com

www.gitbook.com
こんな感じで全編英語だがリファレンスとワークブックに分かれていていい感じ。

リファレンスを読んでいると眠くなってくるので、ワークブックを手を動かしながらに中心に進めていく。

Lesson 1: Build your first app

1.1: Install Android Studio, Hello World, Logging · Android Developer Fundamentals Course – Practicals

肩慣らし的な内容だったが、xmlandroid:text="hoge"Alt + Enter(Windows)でstrings.xmlに書き込めるのは知らなかった。

https://gyazo.com/5acafae9cf5f892c628c41d2717631fc

Alt + EnterExtract string resourceを選んでEnter

https://gyazo.com/1ec3f8d127b2e0d795603e1e20c463ce

android:onClick=""も同様にAlt + Enter(Windows)でJavaファイルに自動でメソッドを生やしてくれる。

https://gyazo.com/76567e8945cec3cc3c7cd6d9e6b4534d

Alt + Enterでバーン。

https://gyazo.com/6a88f5c1bbb8c0dda68e3c3de38b49b4

Homework Lesson1

Homework Lesson 1 · Android Developer Fundamentals Course – Practicals

https://gyazo.com/ac0fc02542990f8540837817e4426a38

練習問題。Lesson1で作ったHello Toastアプリを改造してみようみたいな内容。
ZEROボタンの実装とsetBackgroundColor()メソッドを使ってボタンの色を変えてみた。

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private int mCount = 0;
    private TextView mShowCount;
    private Button mCountButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mShowCount = (TextView) findViewById(R.id.show_count);
        mCountButton = (Button) findViewById(R.id.button_count);
    }

    public void showToast(View view) {
        Toast.makeText(this, "Hello Toast", Toast.LENGTH_SHORT).show();
    }

    public void countUp(View view) {
        mCount++;
        if (mShowCount != null) {
            mShowCount.setText(Integer.toString(mCount));
        }

        if (mCount % 2 == 0) {
            mCountButton.setBackgroundColor(Color.GREEN);
        } else {
            mCountButton.setBackgroundColor(Color.RED);
        }
    }

    public void zero_btn_tapped(View view) {
        mCount = 0;
        mShowCount.setText(Integer.toString(mCount));
        mCountButton.setBackgroundColor(Color.BLUE);
    }
}

2016年8月に読んだ本

15冊読んだ。

良かった本


インタビュー本。後半の横井哲学の話がおもしろい。

イマイチだった本

教場2

教場2


前作を読んでいたので読んだ。前作と同じで警察学校の話が永遠と続くので飽きてしまった。


enchantMOONを持っていないと読む意味があまりない。

2016年7月に読んだ本

18冊読んだ。

良かった本

2016年ベスト本。やり投げ選手の評伝。
朝井リョウの書評動画。

真夜中のおすすめ本「一投に賭ける 溝口和洋、最後の無頼派アスリート/村に火をつけ、白痴になれ」

ヤノマミ (新潮文庫)

ヤノマミ (新潮文庫)

NHKスペシャルのアマゾン特集を観て興味が湧いたので読んだ。
ヤノマミ族に密着。ガリンペイロは悪者として書かれている。
現在のヤノマミ族について知りたい。

イマイチだった本

該当なし。

2016年6月に読んだ本

7冊読んだ。

奇跡の脳―脳科学者の脳が壊れたとき (新潮文庫)

人生はマナーでできている

陽気なギャングは三つ数えろ (ノン・ノベル)

ヒキコモリ漂流記

節約する人に貧しい人はいない。

民間軍事会社の内幕 (ちくま文庫 す 19-1)

万引き老人

2016年5月に読んだ本

26冊読んだ。ノンフィクションをたくさん読んだ。小説は1冊も読まなかった。

良かった本

GO WILD 野生の体を取り戻せ! ―科学が教えるトレイルラン、低炭水化物食、マインドフルネス

GO WILD 野生の体を取り戻せ! ―科学が教えるトレイルラン、低炭水化物食、マインドフルネス


今年のベスト本。

脳を鍛えるには運動しかない!―最新科学でわかった脳細胞の増やし方と同じ著者だった。
週5日位運動しているので、自分がやっていることが間違っていなかったと安心できた。

イマイチだった本

リプレーの奇人不思議館

リプレーの奇人不思議館

ビックリ人間大集合。1930-1950年位の写真がたくさん載っている。
怪しい本だった。15分位で読み終わる。

筋肉 × エンジニア の Slack チーム公開

この記事は筋肉 Advent Calendar 201615日目の記事です。

スペック

  • 筆者近影 f:id:na3ksg:20161215224200j:plain
  • トレーニング歴: 10年
  • 体重: 61kg
  • スクワット: 160kg
  • ベンチプレス:130kg
  • デッドリフト: 170kg

ジムは1回100円の公営ジム。トレーニング内容はBIG3中心。 上記の通り才能や素質には恵まれなかったが、世間一般で言われているマッチョにはなれた。
10年トレーニングを続けて良かったことは、ひとつのモノを10年続ければ何かしらカタチになることを自分の体で体験できたことだ。
若い20代のうちに体験できて良かった。このトレーニングでの成功体験を活かし、今はクソコード、クソアプリしか書けない自分をどうにかしようとしている。
前置きが長くなったが、ここから先が本題。

筋肉 × エンジニア の Slack チーム作った。

テストステロンの影響により界隈からは周回遅れでSlackに入門し、チームを作った。
Publicなチームを作りたかったのでSlackのトークンを取得してきてGoogle FormsにGoogle Apps Scriptを仕込み招待フォームを作った。

  • 界隈の筋肉、筋トレ好きなエンジニアなら老若男女歓迎。下記のフォームからメールアドレスを入力すれば参加できる。
  • Slackチーム名は、「Body Hackers Hub」
  • 参加者数 23名 (2016/12/14 時点)
  • 参加層はフットネス目的からガチ勢まで様々。
  • チーム作ってからまだ数日しか経っておらず、全てが手探り状態な今がチャンス。
  • 自由にチャンネル作成可能。RSS feedなども追加OK
  • 何か面白いアイディアがあれば#-generalで発言して欲しい。
  • Publicなチームなので治安が心配だが、その時は筋肉が解決してくれると信じている。

今後の展望

筋肉ハッカソン、筋肉LT大会、もくもく会(合同トレーニング)など開催できれば最高。 ではSlackでお会いしましょう。