ほっこりメモランダム

日々のちょっとしたほっこりをつづれたらいいかな。

1日目(追いつき):どうやって勉強する?

Swiftにターゲットを決めた翌日、1日目、月曜日。どうやって勉強するかをまずは決めようと思案。

頭にあった選択肢は二つ。Udemyなどで初心者向けのオンラインのビデオ講座を探すか、自分で手頃な(ボリューム等)テキスト本を探して完全独学するか。

もちろん、スクーリングというか集中講座・セミナーのクラスに通学するというのはあり得るが、すぐに始めたいということと、スケジュールの柔軟性の点からあえて除外。

さて、どちらから探そうか。私の場合、プログラミングの経験が完全にゼロな訳ではないので、不要だと思ったら時間の節約のために飛ばしたい。その点、ビデオ講座は以前の経験で、その部分だけスキップするというのが難しかった記憶が思い出されたため、まずは一番柔軟性のあるテキスト自習を探すことしよう。

その後、いくつか初学者おすすめの書籍をリストアップしているサイトをウロウロしてみて、最終的にこの本でやってみようと決心。

 

「たった2日でマスターできるiPhoneアプリ開発集中講座 XCode/SIWFT5.5対応」

出版社のサポートページはこちら>>

選択のポイントは、第一になんと言っても「2日でマスター」。もちろん、頭からできるとは思っていませんが(出版社の方、ごめんなさい)、さすがに「2日」を歌う分量であれば、1週間あれば一通り通せるんじゃなかろうか。

第二に、開発環境(XCode)のインストールから使い方まで手順がスクリーンキャプチャー付きにで説明されていたこと。私の場合、プログラミングの経験はあるが、何せ30年近く前、初期のBASIC、GUIなどまだない時代なので、今のような「開発環境」を使ったことがない。フローチャートはかけるが、コーディングとなるとまずはそこに親しむことから始めないとダメなので、これは重要。

第三に(実はこれは決めた後から気がついたことだが)、サンプルコードやアイコンや素材などのファイルがサポートサイトに揃っていたこと。4日目の記事で書いたが、どうしてもビルドがフェイルした時に、これに助けられた。

以上、決め手はそんなところ。決めた以上はさっさと始めたいので、AmazonKindle版を購入し、ダウンロード。すぐさまXCodeのダウンロードに着手したが、ここで最初の軽いトラップにハマったのであった。

(続く)

 

 

 

 

 

 

 

5日目 「カメラ」の続きにカメの歩み。。。

今日は終日自宅作業。外部モニターが使えてマルチ画面となるので、その点作業効率は良いのだけれど、一方で散発的な所用や横槍が入る。加えて、予想もしない安倍元総理のニュースが飛び込んできて、思わずニュースに見入ってしまった。結局、正味にすると4時間ぐらいか。

テキストの方は、昨日の「カメラ」プログラムの続きから。元々の目論見では、なんとか今週中に一通り通してみたいと思っていたのだけれど(何せ、2日でできるというテキストなんで、4日あれば、と)、結論から言えば、さすがにそこまでは辿り着けませんでした。

今日のハイライトは、アプリからiPhoneのフォトライブラリへのアクセスする機能と、その後は画像エフェクト機能の利用。

昨日と同様、新しいクラス、メソッド、モディファイヤのオンパレード。「コード解説」を読んでも、ほとんどまだ私には呪文の状態。一度通してから、もう少し体系的に確認しないと頭に入りそうにないので、意を決してとにかくテキストを見て打鍵することに集中。

とはいえ、さすがに打鍵4日目にもなるので、ボタン操作であるとか、いくつかのコード展開は(理解はおぼつかないが)かなり見慣れてきたし、また新規ファイル作成、ビルド、IPhone実機転送などXCodeの基本的な操作は、いちいち説明を見なくても手が動くぐらいにはなってきたのは収穫?

残るはカメラのエフェクト機能の続きと、最後のプログラム「お菓子検索」。

一応、当初の無謀な計画では、来週は自分で考えて何か簡単なものを作ってみる、というつもりだったので、月曜日にはテキストを一通り終えたいけど。。。

とりあえず、良い週末を。

 

4日目:初めてプログラムをiPhone実機に転送!

実際に学習を始めてから、あっという間に4日目になってしまいました。

日々の記録にしていくはずが、全く遅れてしまっているので、これではまずいということで、いきなり4日目までの記録を駆け足で書いておこうと思います。

iPhoneのアプリを勉強すると決めたその後、いくつかの候補の中から一冊テキストを選び、それを一冊やり通そうと決めました。

早速、Appleの用意している開発環境XCodeMacにダウンロードし、テキストにそってプログラムを書く、というか、写して(笑)、シュミレーターで確認、ということで、色々トラブルもあったが、昨日までに4つのプログラムを曲がりなりにも動かすに至りました。

テキストは「たった2日でマスターする」というタイトルで全部で6つのプログラムが含まれているもの。毎日フルに一日使えるわけではないけれども、とりあえず昨日までで1日目を大方終了しました。

今日、4日目は、テキストの後半、2日目のプログラムに着手。

5つ目のプログラムのお題は「タイマー」。

画面ナビゲーション(遷移)と、画面間で変数の引き継ぎ、それと画面の部品(ボタンや背景)の色の設定あたりがメインの内容。この辺りは、大分昔だがMS-ACCESSのマクロをいじった時と感覚的には似たものがある気がして、割とスムーズに入っていける感じ。トータル2時間ちょっとでクリア。

さて、6つ目。ここからが難題だった。お題は「カメラ」。何ステップかになっていて、まずはiPhoneのカメラ機能を呼び出して、撮った写真のデータをアプリの画面に出すというのが最初の課題。

このあたりから、初期のPC(8ビットか16ビット(^ ^; )のプログラミング経験がほとんどの私には馴染みのない「クラス」「メソッド」「プロトコル」だのという概念を、どうしても通らざるを得なくなるが、正直に言ってこの章から急に文章の難易度が跳ね上がり、とてもすんなりとは理解できず、むしろ珍紛漢紛に近い(汗)。これ、一応初心者向けの書籍だよねえ。。。と思いつつ、かなり苦しい。

ともかく、プログラムを「うつす」ことに専念することにして手を動かしますが、コードの長さも大分長くなって、いくら開発環境のアシストがあっても、細かなミスでエラー表示が多発。目を皿のようにしてテキストと比較すること1時間以上、かなりのミスを修正しエラー表示も減ってきた。

テキストが「全部入れたら コマンド+Bでエラー表示が消えるのを確認せよ」というので、そろそろ大丈夫かと思ってするも、ビルドが失敗、と出る。エラーメッセージは「UIViewControllerRepresentableのお作法に合致していないからダメ」という意味のものだけが、最後まで消えない。

もう一度見直すが、どこがおかしいのかわからない。テキストでは全体が比較しにくかったので、ダウンロードしてあったサンプルコードを開いて、ウィンドウを並べて比較。それでもわからない。。。何が違うんだあ??

さらに小一時間格闘するが、どうにも間違いがわからず断念。ただ、おそらくはテキストでも、上記のプロトコルに必須だと書いてある2つのメソッド(makeUIViewController, updateUIViewController)あたりがクサいと思って、ダメもとでこの部分だけ自分の打ち込んだコードを全てコメントアウトして、サンプルコードからコピーしてみた。

そうしたら。。。ビルド成功!

やっぱりここだったか、と思いつつ、コメントアウトした自分のを再度見てもやはりわからなかった。摩訶不思議。

このプログラムは、カメラにアクセスしないと行けないので、これまではシミュレータだけで確認してきたが、今回はいよいよ実機にて確認ということで、プログラムを自分のiPhoneに転送!いくらサンプル通りであるとはいえ、自身で打ち込んだプログラムが実機で動くかどうか、素直にワクワクするものですな。

ということで、ここまで4時間近くかかったかな。まだまだ理解が追いついていないが、続きは明日ということで。

おやすみなさい。

 

 

 

 

 

 

0日目: プログラミング言語の選択を悩む

さて、前回iPhoneのプログラミングをやることにした、と書きましたが、今回はそれに至る前の話です。

とにかくプログラムを(再)勉強してみようと考えたものの、何をやろうか、どの言語を勉強しようかは、まだ決めてませんでした。

まずは、それを決めなくては、ということで、なんとなく頭に浮かんでいたやってみたい分野は以下の3つ。

ひとつ目は、今をときめくブロックチェーン関連。ふたつ目は、だいぶ薹(とう)が立ってきているかもしれないが、まだまだ花形のデータアナリティクス関連。そして最後がiPhoneのアプリ。

会社がデータアナリティクス関連の業務を手がけていることから、そこでPythonが使われているということは知っていましたし、最近各方面でメジャーになっている言語であるとも認識していました。しばらく前にたまたま話をした友人からは、希少性や将来性ということではブロックチェーン関連で使われている例えばSolidityとかっていうのもいいかも、という意見も聞いていました。

一方、iPhoneということになるとどうなのか、は全く知識がなかったので、できれば「一粒で3度美味しい」言語を学びたいよね、と思って色々なWebサイトを訪ねました。

先に結論から。やはり一粒で3度美味しいはできなくはないが、今の私には無理だろう、と思えました。使いやすい開発環境と、それをわかりやすく教えてくれるテキストがないと時間がかかりすぎて挫折するのが目に見えている、と。

そこで、まずは第一歩として、短時間で集中して結果を出せるものに絞ろうということに焦点を当てた結果、iPhoneのアプリをアップルお墨付きのSwiftで勉強しようという結論に至りました。

iPhoneアプリを選んだもう一つの理由は、ブロックチェーンとかデータアナリティクスは、最初の「お題」になるような、現実的に手の届きそうなプログラムのイメージがないのに比べ、iPhoneの場合はで、個人的にも役に立ちそうなちょっとしたツールが作れそうな期待感があって、それが推進力になるといいなという理由です。

とにかく、飽きっぽい性格でもあるので、投げ出さないうちに目に見える結果にたどり着くことを重視しようと。

さて、ターゲットは決まりました。次は、どうやって勉強を始めるか、「先生」を決める段階です。

 

リスキリング、はじめてみました。

リスキリング、という言葉が聞かれるようになってしばらく経ちますね。

どの辺から表に出てきたのかな、と思ってググってみたら、2年ほど前のダボス会議がきっかけだそうで。

それより何年か前、夏の休暇中にたまたま「LIFE SHIFT 100年時代の人生戦略」を読んだ頃、まだ50代に入ったところでしたが、ちょうどキャリアの長い第1幕が終わろうとしていたこともあり、それなりに考えるところがありました。そして2幕目に向けて、それまでの経験を資格という形で「見える化」したりしてました。これは十分意味があったなと今でも考えています。

で、現在。2幕目から3幕目への幕間とでも言いましょうか。2幕までのストーリーの延長線上で3幕目の脚本を書こうとしているのですが、なかなか筆が進まないのが実情。

幸か不幸か、しばらく自由になる時間もあるし、と言うことで、ちょっと脚本を書き進めるのは横に置いて、これからのストーリーのネタ探し、自分にとって今確実にできることよりも、やったら面白いかもしれないことを探してみようと思い立ちました。

色々頭に浮かべてみましたが、自分はやはり何か手を動かして作っているのが楽しいのかなと、ほぼ四半世紀ぶりにプログラミングの勉強を始めてみよう、手始めにiPhoneのAppを作ってみようと。

これぞまさに世に言うリスキリング、自己DXじゃないかということで、自身の記録をかねて、その顛末を記しておくつもりでこのブログを書き始めています。

さて、どんな展開になりますやら。

ちなみに、ブログをやること自体も、初めてだったりしますが。(笑)