Swift 独学プログラミング プログラミング初心者のXcodeでUI作成〜見た目と動作編〜

あっ どうも子へびです。

今日は暦のうえでは立冬らしいですが、まだまだ寒いのは勘弁して欲しい子へびです。あの重ね着する季節がくると思うと気が重いな〜。でも食べ物は楽しみです。肉まん・焼き芋などなどホクホク系が楽しみ!



子へびの次なるアプリの作成は入力codeは慣れ親しんだPythonで書いて(でも結局はSwiftに書き換えないといけないけどイメージで書いてみました)また久しぶりになってしまったXcodeを立て上げてイメージUIの作成の続きにとりかかりました。

子へび

Xcodeって使い続けてると色々思い出すけど、ちょっと間を置くとすぐ使い方すっかり忘れてしまう気がする・・・。(本音)

みなさんはいかがですか?笑 

UIを何個か作成してお久しぶりのMaster松陰に報告すると

ちなみに作成したUIサンプルの一部がこちら

Master松陰

フィールドは、上半分に納めるか収まらないならスクロールビューに乗せておかないと、ソフトキーが表示されたら隠れてしまって入力できなくなるよ。スクロールビューに乗せる場合は、フォーカスに合わせてスクロール位置を自分で制御しないとダメだけどねテーブルビューに乗せるのも1つの方法で、テーブルビューだと自動でスクロールしてくれるから便利だけど、テーブルビューの扱いそのものが面倒ね。

とのこと。

子へび

たしか前回PythonistaでUI作成した時もそうなこと言われたような?

見た目だけでなく使いがってを考慮して配置しないとすぐに指摘が入ります。ただ最近のMaster松陰は子へびの独り立ちを構想中らしくもう答えは教えてくれません。自分で調べて解決しなさいってことですね。笑 いつまでも手取り足取りの段階は超えたということかな?!

さてこの問題を解決する方法は何個かあるようですがどれをチャレンジしてみるかな〜?

Python 独学プログラミング プログラミング初心者のXcodeでView作成〜何を使う?編〜

あっ どうも子へびです。

朝の通勤ラッシュ時にホームと電車の隙間に靴を落としてしまった子へびです。後ろに並んでいた方が子へびの靴を踏みスポット靴が脱げたかと思った瞬間すでに靴は落下していました。マジで〜!こんな人本当にいるんだっと自分の事ながら思った子へびです。駅員さんはよくあることのように平然と拾いあげてくれました。けどその後に乗った電車が徐行運転となっていたのでやはり子へびの靴が電車を遅らせてしまったのでしょう・・・。面目無い。



さて絵に書いた画面をview画面に実体化してみました。Pythonistaの経験もあってここまではなんとなく形にはなるな〜。笑問題はここから先codeで繋いで画面の切り替えと、使用したことないパーツを貼り付けた時の実装が問題ですな。

そしてこのサンプルviewと手書きで書いたアプリの動きをMaster松陰に見せると

Master松陰

まずこの仕様がダメ。手数が多い。

などこの時点ですでにダメ出し。

子へび

とほほ・・・。

Master松陰

UIの設計をうるさいよ。

っとMaster松陰はどこまでもきびし〜。

Python 独学プログラミング プログラミング初心者のXcodeのUIパーツ〜UIパーツの名称編〜

あっ どうも子へびです。

朝晩急に涼しくなって鈴虫の声が聞こえると秋の気配は感じる子へびです。秋と言えば食欲の秋ですね!実りの秋は美味しいものがたくさんありあれもこれも食べたくなってしまう子へびです。



さてXcodeを勉強中の子へびですが仕事中にMacを持ち歩くことができない為休憩中スケジュール帳の白紙の部分へ実際のアプリの画面と動きを聞き出しイメージしてみることにしました。子へびの場合UIパーツの名前がまだ把握仕切れていない部分が多いので実際に作り出したらここにはlabel置くかな?とかsegment置くかな?とかタップしたら次の画面へ移動するとか細部まで子へびの頭にイメージする動きを書き出しています。

Master松陰

それは良いアプローチかもしれません。作り出す時に無駄がなく作りやすくなると思いますよ。

っとMaster松陰もこの方法には賛成のようです。

ただノートに書き出した画面のイメージを見せて

子へび

ここにsegmentを配置して、ここをタップするとピッカーがでてきます。

っと説明すると

Master松陰

動きが単調ね。それは良くない。

っとまだイメージ段階でダメ出しを食らっている子へびです。でも子へびにとってこの妄想に近い考える時間が何より楽しいです。まだ理想を形にすることができない子へびにとっては何より楽しい時間です。笑

Python 独学プログラミング プログラミング初心者のXcodeでアプリの作成〜何から始める?!編〜

あっ どうも子へびです。

ようやく朝の時間にランニングできる涼しさになってきました。ちょっと前までは早朝でも身の危険を感じ途中で引き返してきたのですが今日は満足のいく距離が走れました。やっぱり午前中に運動すると1日がスッキリ。本当は平日もこうできたらストレス解消になっていいでしょうね〜。

そうしてようやくMaster松陰の講義も再開!アプリの作り方の本はようやく読み終わったものの(実際プルトコル・デリゲート・クロージャー部分については数回読み返しそれでも理解できたかというと全然不十分だった)きちんと理解できたかというと全然そうではなくてMaster松陰にぶつけたい質問・疑問がたくさんありました。

子へび

Master松陰!子へびはどうも理解不十分な点が多いと思います・・・。

Master松陰

今日の講義は高いよ。

っと相変わらずニヒルなMaster松陰です。

そしてまず教わったのが”そもそもiosがどうやって動いているか”です。
それに合わせてmainviewcontrollerとsubviewcontrollerを作成し双方のfunctionがどの順番に動いているのかをデバッカーの使い方と共に教えてくれました。実際にアプリを作成すると一画面だけで操作が完了するより数個の画面を繋いで作りあげることの方が多く”どのように繋いでどのように動いているか仕組みをまずは理解する。その上で画面上のレイアウトを作成、デザインをつくる”ということを教えてくれました。

子へび

呼び出される順番と役割が理解できると頭の中にイメージ化できてとってもスッキリします!

本で読んで文章で理解するより実際に動かして説明されるとすんなり理解できる子へびです。

そして悩んでいたプロトコルとデリゲートの関係についても質問したところ

Master松陰

子へびの根本的な理解はあっていますが、複数人で何か作成するのには有効な手段ですが実際に自分でプロトコルを作成しデリゲートで実装させるコードを書くのはちょっとまだハードルが高いね。けどTableviewを使うのであればまさそれが
プロトコルとデリゲート関係になっているのでまずは基本的な操作を学ぶにはいいかもしれないね。

子へび

なるほど。あと今更なんですがviewとviewcontrollerの仕組みについても子へびは実は理解していません・・・。

恥ずかしいけどもうこうなったら恥を捨てて全て聞いてしまえ!っと思って恥を忍んで聞いてしまいました。

Master松陰

それはもっと簡単だよ。viewcontrollerはviewを持ちそのviewは階層化されているってことね。

子へび

???っということはviewcontrollerは複数個存在するということですか?

そうなんです。子へびmainviewcontrollerという説明ばっかり本で読んでいたのですっかり頭が混乱してしまってviewcontrollerに対してviewがセットされている相互関係をすっかり勘違いしていてここでようやく理解ができたのです。

全てにおいて相互関係が理解できてようやくスタート台にたった気がした子へびです。笑

そんな子へびにMaster松陰は

Master松陰

じゃあ宿題はやっておくように。それができるようになったら次はレイアウトの勉強ね。

子へび

とほほ・・。まだまだやることたくさん今はそれ以上言わないでください。

っと思わず言ってしまった子へびです。