Androidアプリ開発メモ

アプリ開発初心者が、ゼロからストア投下までのやり方を記載していくブログ

0からはじめるおっさんのAndroidアプリ開発#4 アプリ決定に伴う方向性の確認

仕事が鬼のように続く毎日の中、アプリの勉強ができないのは言い訳でしかないが、やはりつらいね

 

さて、現在JAVA言語を覚えてる最中なのですが、もう全く頭に入ってこないので、どういうアプリを作ろうかということを決めて、気分転換もかねます

友人と最初に話したのはとりあえずストアに出せるまで続けるということなので、イメージは粗方固まってますが、どういったものをどこまで作るのかは詳しく話していません

現状作りたいと考えているのは多機能カレンダーですが、勉強すればするほどJavaっていうかプログラミングは深すぎてシンプルなのを作るのがようようなのかなと思います。

ですので、機能を極限まで絞ったカレンダーを現在は思案中です

f:id:casteromebu:20180807233010p:plain

大体ですが、こんなのを作りたいと思っとる次第です

ざっくり過ぎて本と分かりにくいけども、赤なら負け、青なら勝ちってことですね。それを収支を入力することで自動的に色表示する感じです。色もタイトルも編集できればもっといいのですが、そこは作ってみてってところですね

全部青にできたら、気持ちよさそうやない?という発想だけで作ってます。家計簿自体は本当に様々なアプリがストアにはありますので、シンプルに行ってみようかなと

 

さて、どういうアプリを作ろうかは決まったので、本当にこれからは毎日JAVAの勉強ばっかりになると思います。メモを残すとしたらその時の何をどう勉強したかぐらいでしょうか

毎日が仕事で嫌になることも多くあると思いますが、それでも自由な時間はあるわけで、そこに小さな可能性を見つけたいものですね

0からはじめるおっさんのAndroidアプリ開発#3 プログラミングについて

Androidアプリの開発方法、そしてアーキテクスチャと学んで、わかることよりわからないことのほうが増えていっているのは、こういう新しい分野を学ぶ上で仕方ないのかと思います

AndroidJava言語でプログラミングされています。ではプログラミングって何?ということで、それを書いていきます

 

プログラミングとは、コンピュータプログラムを作成することです
コンピュータプログラムとは、コンピュータにどう動いてほしいのかというのをまとめたスケジュール表です。一つ一つを作り上げていくことでコンピュータは人間とは別次元のスピードで読み解き、一瞬で指示通りのことを実行していきます。
ですがコンピュータは2進数で把握しています。英語や日本語、我々人間が使っている10進数を読むことはとても難しいのです。
両方の理解力とプログラムの作りやすくを考慮したのが16進数というものがありますので表を作っときました

f:id:casteromebu:20180724185835j:plain

これをみて だからどうした と思いました

ですが、これがプログラミングをするうえでとても重要だということで、存在を知っとくだけでもいいのです

 

では、Javaのプログラムは16進数で書かれているのか?といわれれば違います。英数字で構成されています

ですが、パソコンは英数字で書かれているプログラムコードを読み解くことが全くできません。私たちが書いているこの日本語もそのまま読んでいるわけではなく、いちいち2進数で読んでいるのですが、それを補助するソフトウェアがあります。

たとえばですが、あ=1010010010100010と二進数ならなります。これが自己紹介程度で莫大な量になるのは想像に難しくありません

プログラミングも同じです。Javaのプログラミングコードをパソコンに読み込ませれるように2進数に変換してあげるソフトにJDKというJavaのプログラムキットがあります。これは無料で配布されているので、Android Studio(以下AS)と一緒にダウンロードしなくてはならない必須ソフトウェアとなっています

このJDKだけでもプログラムを書くことはでき、プログラミングすることは可能なのですが、ASはプログラミングするうえでとても便利な機能を備えているそうです(まだ私はASを触ってプログラミングするまでに至っていません)

JDKの主な役割は、Java言語で書かれたプログラミングコードをパソコン側が読み取れるように自動で二進数に書き換えてくれるというものです。これをコンパイルといいます。

ASはJava言語をコンパイルし、エミュレータ(仮想デバイス)で実行することができるそうです。ここまでくればプログラムしてソフトを作ってそれを動かすのがイメージできてきました

 

プログラミングについてはここまでです

プログラミングの方法、プログラミングコードと進んでいくと果てしない道のりですが、その入り口を見れたのかなと思います

0からはじめるおっさんのAndroidアプリ開発#2 アンドロイドアーキテクスチャについて

今日はアーキテクスチャ、コンピュータ自体のことについてのメモを残します

まずandroidでアプリを開発するにあたり、java言語が必要なのは前回にも書いたので、そこを丁寧に説明してくれてる参考書を購入した

まずアーキテクスチャというものが私は分かっていない。参考書を読んでいくと

  • アーキテクスチャとは、コンピュータ(ハードウェア・OSなど)の基本設計概念のことのようです。

全体的な仕組み。家で言えば土台、骨組み、支柱などの仕組みでしょうか。それがあるから壁画や床や階段で二階にしてみたりとできるそうです。

 

ではandroidのアーキテクスチャとはどういうものがあるのか

f:id:casteromebu:20180720170056j:plain

メインPCにOfficeないんで、Googlesheetで作成。ものの見事にわからない単語だらけで、脳が痛いです

参考書では、androidアプリを作ってそれを動かすうえではアプリケーションフレームワークが分かればそれで作れてしまうということで、Linuxカーネルやライブラリについては省きます。『アプリを作ってストアに出す』が目標なので100%理解はあきらめてます

アプリケーションフレームワーク層はアプリで利用することになるAPI(アプリケーションプログラムインターフェイス)と、アプリの管理機能をするとのこと。

ここまではわかる。これらを使ってすべての指示を出し、アプリケーションという建物を作っていくということ

一応概要もこの参考書は教えてくれるのでここにメモしておきます

  • ActivityManager  アプリのアクテビティのライフサイクルを管理する
  • WindowManager   ウィンドウを管理する
  • ContentProviders  アプリ間でのデータ共有を管理する
  • ViewSystem     ユーザーインターフェイスを管理する
  • PakageManager   インストール機能を管理する
  • TeiephonyManager  通話機能を管理する
  • ResourceManager   リソースを管理する
  • LovationManager  位置情報を管理する
  • NotificationManager ステータスバーへのアラート表示を管理する

と、結構あります。でもこう書かれるとスマホを操作している方なら半分以上はイメージがつくのではないでしょうか。私もPC歴はそこそこに長いためほとんどわかりました

ただ今回この参考書でのアプリ作成の紹介はActivityManagerとViewSystemの二つを覚えてればいいらしいので、とりあえずはメモのみ残します

アクティビティとライフサイクルってのがイメージつかないなと思ったら紹介してくれてました。

 

アクティビティはユーザーが操作可能なビューと、それに対応する処理するプログラム

ライフサイクルは、アクティビティが始まって終わるまでの状態遷移(移り変わり)のことのようです

 

メモってことで文が多く密度も多く大変読みにくいので、まとめをすこし

 

  • 簡易アプリを作るなら、ViewSystemとActivityManagerについて知ること
  • ViewSystemは画面に表示するボタンなど
  • Activityはその画面の操作処理プログラムのこと
  • だからこそ簡易アプリはボタンと操作処理があれば作れる

ということです。なれない単語や言い回しは頭に入りにくいですが、毎日少しずつ進めていきます

0からはじめるおっさんのAndroidアプリ開発#1 android開発アプリ、Android Studio導入について

さて、アプリを作ろうという意気込みからまずは情報収集から入っていきます。

右も左もわからないなか、検索していけばandroidアプリ開発にはAndroid Studioが必要とのこと

ググってみて真っ先に出てきた超入門を参考にさせていたき、インストールまで済ませました

www.atmarkit.co.jp

 

そしてここで問題が発生

ライトゲーマーな私は先日Ryzen CPUのパソコンを組み終えたばかりだったので、メインPCはAMD CPUです。

Ryzen CPUの方は知っているかもしれないが、Android StudioはInter CPUのみしかサポートしていないようです

こちらのサイトを見て私も愕然…

acchi-muite-hoi.hatenablog.com

何とか動かす方法として二つあり、

  • 1.Genymotionを使用する

このソフトを落として起動させることまではできました。自分のPCでスマフォ画面が出るのはちょっと感激しますね

f:id:casteromebu:20180718224307p:plain

ただこのソフトだと、プログラミングしてそれを反映させるのが非常に手間のようで、IntelPCを持っている方はこれを使うメリットはほぼないようです

これもライトゲームPCがメインPCな私にとって、Windowを捨てるのは厳しいため却下。Linuxはそのほかの開発にも良いOSではありますが、今回は思い立ったが吉日という観点からアプリ開発をしていますので、今あるものでやっていこうと思います。

 

今日は自分のPCにスマフォ画面を出すまでに至ったというだけで時間が来てしまったので、アプリ開発の土台すら築けず終わってしまいました。

サブPCにIntelがあるので、それを使用して作っていこうと思います

0からはじめるおっさんのAndroidアプリ開発#0

誰しもがスマフォを持っている昨今、アプリを自分でも開発したいと思っている人は少なからずいると思う
私もその一人で、友人と共同開発しようという話が持ち上がった

だが二人とも全く触れたことのない分野で、何かを作りたいという考えはあるものの、やり方等は初めて外国語を勉強することのように、右も左もわからない
そのため、このブログにメモとしてやり方を残し、私のような境遇の方にみてもらえればなと思う