なぜレガシーエンジニアなのかというと
業務では時代に逆行し覚える言語は年々古いものを身に着け。
属にいうCOBOLエンジニアの類。
しかし、新しいものは得意なのであたらしいオープン知識は理解できる。
ただし、若干ウェブ系は弱い気がする。
しばらくは、私のプログラム遍歴を少し。
興味ない人は読み飛ばして下さい。
私システムエンジニアをしています。
社会人22年目です。
私のプログラム歴は、
中学校の時代技術の授業でBASICに出会う。
そこから、まったくなにもなく。
専門学校でC言語を習う。初めて言語というものを知る。
就職、5年ほど汎用機のオペレータなのでプログラムはなし。
ただ、IBMのJCLやACOSのJCLやオペレーションコマンドなどに触れる程度
時代は、イーターネットが普及していない頃で独学でホームページを作成。
そのなかでJavasprictなどをC言語の知識で独学で修正。
オペレータからシステムエンジニアに異動になるも、
運用系なのでCOBOLの業務に従事。COBOLを短期間で習得。
ASPのウェブシステムを開発するも独学。セキュリティあまあま時代、対策なしで
公開していたサーバは狙われる。
Acucobolというマイナーな言語を習得。
異動を願いでてやっと開発の第一線にでる。
Acucobolのマイグレーションの実績からマイグレーションのリーダーをやる
Acucobolが便利すぎるがゆえ、AcucobolがmicrofocusCobol社に買収。
社内プロジェクトとん挫。
仕事がなく出稼ぎエンジニアとして大阪のmicrofocusCobolプロジェクトの火消し対応にて通称MFCobolを習得。Acucobolに比べると実に使いにくい言語を触る。
しばらく出稼ぎリーダーとして数か月程度雰囲気でなんとなく理解して、
ITエンジニアからIT営業に希望でなる。すぐやめる。ITを去る。
専門学校講師にてjavaの授業に従事。
独学でjavaの環境を理解するも開発の背景を理解していないため、
いろんな言葉がわからない。
いろんな問題で1年で契約終了。
IT業界復活、パートナー会社(いわゆる派遣、請負系)。
銀行系でグーグル広告の情報を流用して、その人に興味わくコンテンツだす。
1年もやっていたのにソフト名をど忘れしてしまいましたが、
フローチャートみないものを組み立ててプログラムを構成するところは
今の業務でやっているOutsystemsに近い気がする。
銀行系を終え、短期でjava開発を3か月程度ここで初めてjava開発に従事。
パッケージソフトの企業別改修。
そして、今の開発の中心のOutsystems。
いやー見てわかる通りです。
Androidの基礎となる要素は全くありません。
アプリ開発するにあたってつまづくことばかり。
ネットや本にのっていることは断片的な情報ばかりで基礎がない私には
簡単なことが大きな壁となっています。
具体的な開発3か月で理解した内容をブログに掲載していこうと思います。
今では、だいぶ自由に組めるようになってきました。
次回から具体的なソース展開や解説をすすめる予定ですが
Androidのアプリ開発がどのようなものか理解していこう。
はなしを始める前に、Androidのアプリ開発は非常に難しいです。
難しいからやめないということではない。
理解していくことで、短い時間で基礎的なことは習得できるとおもう。
まず、やらないといけないことは開発環境準備。
環境準備は開発環境はAndroidStudioという無料ソフトを導入。
導入方法は、「android studio インストール」で検索して自分にあったものを選ぶ。
それより簡単なのは本を買う
私が最初に買ったのはこれ。
手順のとおり進めていけばよゆーとなるはずでした。
一番最初の壁!
- 参考書の画面と自分の画面が違う。
- 指示されたボタンが見つからないなど。
原因参考書のAndroidStudioと
自分のインストールしたAndroidStudioのバージョンが違う
参考書を参考とする場合は、
参考書と同じバージョンのAndroidStudioをいれる必要がある。
細かいところ表示がかわっていたりするからだ。
参考書は最新で発行時期が数か月以内ものがよい。
古いAndoroidStudioはダウンロードできたりする
最新入れておけばいいだろうと進めたものの画面毎に微妙に違う。
ランチャー画面がどこからでるかわからないし、
ランチャー画面でやっていることがわからない状態となった。
そのなかでもいろいろ試行錯誤しながらすすめるが
環境がぐちゃぐちゃな私の環境はズタボロでした。
ハローワールドをつくるだけにすごい苦労したのだ。
次に
- パソコンが重すぎて動かない
原因 パソコンが使い古された状態でとても重い状態のうえで、
おもいAndroidStudioを動作させていた。
一番開発を停滞させていた原因だ。
ひとつ動作させるたびに、予想外の挙動で開発が進まない。
私のパソコンは10年以上前のi5のパソコンなので、
苦肉の策として、osの再インストールを実施した。
解放されたパソコンは昔若干メモリも増強していたこともあり
支障がでるほどではなくなった。
どうもメモリは16GBが推奨というなかで私は8GBこれはきつい。
それ以下のパソコンのお持ちの方は少し覚悟したほうが良さそうです。
パソコンに関しては、開発が進んだら買う予定だったが
いま、進んでいるがこれでも十分開発できる状況となったためしばらくは
このままいく。
パソコンにソフトを入れなおすことや、それまでの事前知識でスムーズに環境が
構築されていった。
一応私のスペックはいかのとおりで
動作ギリギリの最底辺のスペックと考えてよいかと思います。
どのようなパソコンを選択すべきか
〇 OS Windows10 64ビット
64ビットでなければメモリが16GBは組めない。
〇 ハードディスクはSSDがいいですね。SSDは今や必須でしょう。
容量は、256GB以上1Tあれば最高でしょう。
〇 メモリは16GB以上で
拡張できる最大容量も確認しておき、
最大が16GBにならぬよう構成を依頼したほうがいい。
わかりずらい説明ですが
メモリスロットが2つあるなら1つにさせる最大で構成しておくこと。
1つであれば今組めるコスパの一番高いメモリ容量を選択する。
コスパが高いとは、値段の割にはメモリが多いバランス。
〇パソコンは、デスクトップでもノートでも構わないが
ノートのほうが開発場所をえらばない。
ただし注意しないといけないのが、どうやらAndroidStudioはインターネットにつながらないとビルドできないようだ。
ノートパソコンであれば1キロ以上は本当に重いので、
1.5キロ以下を検討するとよいかと思います。
〇USB差し込み口は3つ程度あれば十分でしょう。
〇DVD/BRは内臓していればよいですがさほど使いません。
ついているよりは軽い方がメリットが大きいでしょう。
快適なパソコンは、インタプリタのような言葉がまちがっているとはおもいます。
入力したらすぐ動作確認みたいな感じとなるため、ビルドに時間がかからないというのはとても優位なことです。可能であればこのようなパソコンで開発したい。
インストールで一番注意したい設定は
この時点で嫌気がさしてきた人もいるだろう。
初めて触る人にはまったくわからないのだ。
そこで、適当にやるとまたまた、わからないことだらけに遭遇する。
簡単な話アンドロイドにはバージョンがある。
ロリポップやオレオなどバージョンには甘い名前がついています。
タブレットなどに多いバージョン4~最新のバージョン10です。
そのアンドロイドのバージョンに適した開発環境を選べるようで、
エミュレータでは、そのバージョン違いの動作を仮想ドライブとしてテスト
できるのだ、そんなことは初心者にはわかるはずもない。
そこで一言
実行環境は実機でやろう。
ようはパソコンとアンドロイドのスマフォを接続し実行確認しましょう
エミュレータ動作が重い、操作されいるかわかりずらい時もあります。
実機が自分のスマフォなら操作もなれているのでスムーズになるでしょう。
その設定などは、後程記事にしたいと思います。
とりあえず実機にあった開発バージョンのもの入れましょう。
実機が用意できずエミューレータで動作する場合は、
高互換のバージョン4付近か一番多そうなバージョン7~9をベースにやると
よいかもしれません。最新すぎるとでまわってる情報とあわないない
挙動が違うなどこまることもおおいかもしれません。
環境構築と開発のポイントとしてもうすこしだけ。
AndroidStudioでは、新しいアプリを開発する際に
新しいプロジェクトを作成する。
以下の画面でそこで適当に選んでしまうとあらたな問題が発生する。
初心者では、基本部品が少ないものを選ぶこと!
全くないのは、玄人向けで、
空のアクティビーやせめて基本のアクティビーをえらぶ
理由は、Androidアプリ開発をする故で部品の役割を理解する必要があり。
一つの机の上であれこれやっていくというよりは、
その都度机に部品を用意し、修正していくという流れとなるため。
部品は極力少ないほうがいいのだ。
私の失敗といえば、この中で一番難しい右下のfragmentが使用されたものを選んでいる。参考サイトは先ほどおすすめしたアクティビティーをベースと紹介されているので
くろうすることは少ない。
わたしというと、参考のソースをどうfragmentに合わせていくから毎回はじまるため
毎回苦労する。
以上開発環境に関することでした。
実装がはじまると思いますが
仕事にも役たつ一言をみなさんへ。
『開発の基本手法』
1つの大きなアプリケーションに新たな機能を追加しようとしてうまくいかない場合
秘策① 新規のプロジェクト立ち上げその機能だけ実装する。
動作が確認できたところで、その部品を移植する。
要は完全動作する試作やサンプルをつくること!
私の場合、本に紹介されたマップアプリをフラグメントで構成された
画面に実装する際はかなり有効でした。
基本はハローワールドからですね。
ハローワールド的にまっさらからつくって実装の部品が
わかってみたいな。
ハローワールドを作ってそれにサンプル実装するのがよいかと思います。
一気に組んで一気に組めることに越したことはないですが、
技術的アドバイスはここまで!
いつもおもうことですが、
エンジニアは、試行錯誤、四苦八苦して
考え、考え、考え、考え、そして考え先に
おれにも「みえるぞ」ってなるもの。
いつも同じようなものが「共通点」と「個別」と違いがみえてきます。
その違いの発見の速さがエンジニアとしての能力といえるでしょう。
エンジニアの性分なのでしょうか
すべてが解決するとあらたな問題を探してしまいます。
やっぱシステムエンジニアって能力はなくても私には天職なんだろうな。
こんな天職は、こんな思考さえもてれば転職に優位ですよ。
天職が転職に、転職で天職に。
なーんてな