アンドロイド(Android)用アプリケーションの開発
スマートフォンやタブレット端末などための「アプリ」開発を目的とする。スマートデバイスの登場とその急速な普及は地域にあたらしい産業への期待を生みはじめた。地元企業や自治体と連携して、特定目的向けのモバイルアプリ開発を目指す。世界の新しいアプリ開発手法として、ソーシャルプログラミングがはじまっている。受講生は、具体的なソーシャルプログラミングのサイトへ登録してその開発技法を理解する。
①Android SDKなどの開発ツールを理解する。
②JavaScript と XML の関連を理解する。
③端末ハードウェアとアプリのインタフェースを理解する。
第1回目 アプリ開発についてのイントロダクション
授業スタートにあたりWindows とアプリの理解度テストを実施します。
授業用環境の準備 - レポート提出用
ブログで課題を提出する。
大学 gmailについて
Gmail に**大学のアカウント(学籍番号@g.matsuyama-u.ac.jp)**を使ってログインする。
件名には、授業科目名を必ず書き、
本文中に、学籍番号と氏名を書くこと。
第2回目 Windows OS 開発環境の整備
第3回目 テキストエディタ Sublime, NotePad++ のインストールとカスタマイズ
第4回目 Sublime, NotePad++ でソースコード編集
カオスゲームのソースコードを入力する。
ロゼッタコードにあるカオスゲーム html と javascript
フラクタル幾何学
第5回目 Windows 統合開発環境(Android SDK)のインストールとカスタマイズ
第6回目 Android アプリ
人工知能テンソルフロー応用の例
画像認識アプリ TF Classify を使ってみる。TF Classify はカメラを動かし、画面の中の物を識別して確率で表示する。
第7回目 Windows Subsystem for Linux(WSL) をインストールし Telnet, SSH を使う
Windows Subsystem for Linux (WSL) インストール手順
- 開発者モード
- 設定
- 更新とセキュリティ
- 開発者向け
- 開発者モードをオン
- WSL スイッチを入れる
- Windows 機能の有効化または無効化
- Windows Subsystem for Linux を有効化する
- Linux用アカウント作成
- Windows アカウントとは別に用意する
Windows Subsystem for Linux 機能を動かす
MicrosoftによるWindows subsystem for Linuxの解説記事
Windows Insider Program
インサイダープログラムに参加する。
Windows Subsystem for Linux 機能にチェックし、この機能を作動させる。スタートメニューにUbuntuが登場する。
Ubuntu インストール時に、root password を設定しなければならない。
Ubuntu をインストールしたあと確認すること
-
Windows 10 のデスクトップ左下、「ここに入力して検索」からスタート
-
コマンドプロンプト(cmd)を起動する
- コマンドプロンプトからbashを起動する
コマンドプロンプトで bash と入力しEnterキーを押す。
C:\Users\ユーザ名> bash
するとUbuntuのbashシェルが起動し、次のようなプロンプトが出力される。
ユーザ名@マシン名:/mnt/c/Users/ユーザ名$
ユーザ名はそれぞれLinuxとWindowsでのユーザ名。マシン名は、Linuxでのマシン名になる。
とりあえず Linuxの動作に慣れる
pwd, whoami, uname コマンドでLinuxのシェルを使ってみる。
Bash シェル になじむ
Windows のコマンドプロンプトの源は、このUnixのシェルである。ということで、コマンドプロンプト(Windows)からBashシェル(Unix)を起動することは、先祖返りと言えるかもしれない。
Bashに慣れるため、次の3つのコマンドを入力してみる。これらのコマンド(pwd,
whoami, uname)は、それぞれ、自分のディレクトリー、自分のユーザ名、システムの名前が確認するためのコマンドである。
pwd
ログイン名@マシン名:/mnt/c/Users/ウィンドウズユーザ名
pwd の意味は、ユーザが作業(work)するドライブ(外部記憶装置)の位置(ディレクトリ、directory)を表示する(print)ことである。したがって、英語での命令は、 print working directory となる。
whoami
Linuxのユーザ名
uname
OS などのシステム情報を表示
uname -o
uname -m
uname -a
fortune | cowsay テストとアプリのインストール方法
fortune は、一種の無駄だのようだけど役立つときもあるかもしれないアプリの一つ。cowsay もちょっと微笑ましさを演出するための文字表示アプリ。
フォントをMSゴシックから英文用に変更すればバックスラッシュがきちんと表示される。fortune や cowsay が動かないときは、次のようにしてインストールする。
sudo apt install fortune
sudo apt install cowsay
コマンドプロンプト(cmd)でフォントをMSゴシック体から英文用フォントに変更するには、cmd ウィンドウの左上メニューの中から英文フォントを選択すればよい。
Networking
ip l
ip コマンドは自分のコンピュータが接続されたネットワークについて様々な情報を調べることができる便利なコマンドだ。
ip l
は、コンピュータのネットワークに関して物理的装置、インタフェースを出力する。ip l
は、短縮形でもとのコマンドはip link
で、リンクすなわち物理層を表示する。例をあげれば、1番にループバック(自分自身)、2番にはWiFiの装置名がでるような表示をする。
ip a
これは、ip address
の短縮形である。
ip ne
これは、ip neighbor
の短縮形である。同じネットワークのセグメントで近くにある端末のIPアドレスを表示するコマンドである。
ip
これは、ip
コマンドの使用法の簡略版を表示する。いろいろな使い方を試して、その出力を眺めてみよう。
ping IPアドレス
さきのip
コマンドで発見した近くにあるIPアドレスに向けて、ping IPアドレス
を実行してみよう。
whois matsuyama-u.ac.jp
whois
コマンドは、ドメイン名やIPアドレスの所有者を調べることができる。
sudo ngrep
sudo ngrep
コマンドを実行するには、ngrep
をインストールする必要がある。
sudo apt install ngrep
BSD Games
次にLinuxのもととなったUnixのテキストゲームをインストールして、遊んでみる。
sudo apt install bsdgames
bsdgames は、 /usr/games/ のディレクトリにインストールされる。
ls /usr/games
例えば、この中にある hangman は英単語を推測して当てるゲームだ。下の画面では、eとtの英字2文字までを当てた。さて、外れるとどうなるだろうか。
Telehack.com
Telnetの利用
1985-1990年のARPANET(インターネットの前身)を再現した telehack.com に接続してみる。下の例は、ログインしないで、w コマンドを実行した。どこからアクセスしたかわかるように住所が表示される。その中にMatsuyama, Japan の表示がある。
Telehack.com
アカウントをtelehack.comにつくらなくても、画面下に出てくる .(ドット) がプロンプトになってログインしなくても一部のコマンドが利用できる。例えば、使い方のヘルプは、helpと打てばよい。
starwars
starwars
と打てば、アスキー絵でスターウォーズのストーリーが描かれる。
newuser または login
newuser
またはlogin
でtelehack.comに新しくアカウントを作成することができる。アカウント作成時にはnewuser
とタイプする前にユーザ名とそのパスワードを決めておかなければいけない。 アカウント作成後は、login
する。
geoip
.geoip
IP アドレス、asn, isp, zip, city, state, country が表示される。自分のコンピュータで実行して、その結果を確認してみる。
IP アドレスからispすなわち、インターネットサービスプロバイダ及びシティ名が判明する。州と国名もだ。州は日本国内では番号で表示されるかもしれない。
Webブラウザを使って、次のURLをアクセスすることでもこれらの情報を得ることもできる。
https://geoiptool.com/
さらに地図上の位置を調べるサイトもある。ただし、このサイトは安全とは言えないかもしれない。
http://geoiplookup.net/
このサイトではISPの地理座標が表示される。これを松山市の座標と比較してみよう。
さらにグーグル地図(Google Map)でも座標を入力して比較してみよう。グーグル地図では、座標を33°50’30.12″N 133°45’57.96″Eのように緯度、経度の順に入力する。
練習問題
北緯33°50’30.12″ は、10進数に換算すると北緯33.8417°になる。東経133°45’57.96″は、いくらになるだろうか。
グーグル地図で、地図上の点をマウスで指して、緯度経度を表示するにはどうすればよいだろうか。試してみよう。
Ubuntuコマンドシェルがインストールされていれば、次のコマンドでISPなどの情報を調べることもできる。実際にやってみよう。
whois IPアドレス
ISPの地理情報
ISPに関する地理情報データベースをダウンロードする。
このCSVファイルの行は、 geoname_id の昇順に並んでいる。
このISP CSVファイルから日本を抜き出し、四国のISP地図を作成してみる。
例えば、Geonameid 11611221 のISP周辺地図は、次のようにすれば表示できる。
telehack.txt
telehack.com の利用方法
You have new mail. のように新しいメールが届いていますと表示されたときどうするか。
@
プロンプトに続けてmail
とタイプする。1番のメールを読んで(1)終了(q)する。
- &1
Enter
- &q
Enter
メールの送信(自分に送信する)
- &send 自分のユーザ名
- Subjct? 件名
- Enter message below. (下にメッセージを入力しなさい)
- Type contrl-D on a line by itself to send or control-C to abort. (送信するときはコントロールキーを押しながらDを押す。キャンセルするときはコントロールキーを押しながらCを押す。)
mailコマンドで自分の送ったメールを読んでみる。
- &list
Enter
- &1
Enter
- &q
Enter
sendコマンド例
send manabus hello
?
ヘルプ
練習問題
finger
コマンドの使い方を覚えよう。
Mosh の特長と利用法
Windowsの場合は、Mosh for Chrome をインストールし、Chrome ブラウザから利用する。
Linuxの配布パッケージの一つであるUbuntuを使って、リモートデスクトップを利用する。
vino server
UbuntuではUnity dashから 設定ツールを起動する。
Remmina remote desktop client
これもUnity dash から起動する。
9月26日の米国CNBCのニュースでマイクロソフト社創業のビルゲイツ氏がAndroidスマートフォンに替えたとニュースが流れた。
第9回目 JavaScriptの書き方
HTML と Script タグで動かす原始的なやり方で HTML と JavaScript を書いて、動かしてみよう。Windows で動かすには、エディタとブラウザがあればよい。titleタグは空欄にしてあるから、スクリプトにあわせて自分で適当に埋める。ただ空欄のままでも問題はない。
<html>
<head>
<title></title>
</head>
<body>
<script>
console.log("JavaScript 動いてる!");
</script>
</body>
</html>
次にScript(コード)とHTMLを分けて書くやり方。
<script>
console.log("JavaScript 動いてる!");
</script>
<script src="script.js"></script>
W3schools
あとは、w3schoolsにある例題を動かしてみよう。これを一通り動かせば、JavaScriptの雰囲気はつかめるはずだ。
あとは、AndroidのアプリPyでプログラミングを自習する。このPyは、iOS用のプログラミング学習もできる。
Android apps
-
アプリ Py このJavaScript 学習用アプリをインストールする。内容は次のように「はじめに」からスタートして順にドリルを解いていくとJavaScriptの書き方と意味が理解できる。
-
はじめに(Introduction)
コンソールログ命令で1+2計算
console.log(1+2)
画面に15をだすためには?をいくつに
console.log(5+?)
-
データ型と変数
-
......
Chrome
次のコードを、Chromeのアドレスバー(URL)に入力する。
javascript:[console.log("できた!")]
すると、どうなるだろうか。
次のような窓が開けば成功だ。
第10回目 Node.js のインストール
第11回目 TCP/IP ネットワークの通信パケット解析ツール
第12回目 Android OS 上の TCP/IP ネットワーク構築方法
第13回目 Android OS で 通信パケット解析ツール
第14回目 ユーザインタフェースのデザインとグラフィックスの基本
第15回目 GPS による位置情報の利用
第16回目 アプリ制作のテーマを決定する
第17回目 アプリ制作のための JavaScript 言語入門
第18回目
第19回目 JavaScript実行環境としてブラウザとNode.jsを比較する
第20回目 Android SDK でアプリのフレームワーク構築
第21回目 ウェブサーバ を自分のコンピュータ上に構築
第22回目 クラス内でのウェブサーバの相互利用
第23回目 スマートフォンからクラス内のウェブサーバを利用する
第24回目 ウェブサーバ Apache と Nginx を比較する
第25回目 JavaScript で音声合成エンジンを利用する
第26回目 音声認識アプリについて
第27回目 JavaScript によるグラフィックス
第28回目 JavaScript によるペイントプログラム
第29回目 電子生命プログラムの作成
私達は自分が機械ではないことを機械に示さねばならない時代に生きている
人型ロボット「ソフィア」は人間のようになりたい?ースプートニク記事
Intelのプロセッサチップに根本的な設計上の欠陥が発覚、各OSにアップデートの必要性 - Gigazine
Reddit - 'Kernel memory leaking' Intel processor design flaw forces Linux, Windows redesign
Bugs in modern computers leak passwords and sensitive data. - spectre paper
Intel Responds to Security Research Findings
THE WORLD IS SIMULATED, PROOF OF A VIRTUAL REALITY EXISTENCE? 2017
We Are Living In A Simulation - New Evidence!
第30回目 制作したアプリの総合評価