【swift challenge】デリゲートメソッドは難しい

どーも!

 

3月のライオン13巻まで読んでモチベーションがあがってるチダです!

 

二海堂の常に前を向いたメンタルのあり方とか、ひなちゃんのいじめに対する姿勢とか、れいちゃんの本当にひたすらなまっすぐさとか、島田さんの渇望とか。やばい、俺も頑張らなくては、ってきになるよね。もうほんと2月のトラ(?)になるしかない、と。

 

そう、Swiftガンガン学んでたんですよ!

で、一度見ただけじゃわかりにくい、デリゲートメソッドについてまとめようという感じです。

デリゲートメソッドってそもそも何だろう。

 

ウェブで調べるとやたら、「初心者が挫折する…」とか「つまづきやすい」とか書いてあるんだけど、確かに少し難しいなって感じる。

これは時間をかけてでもある程度のところまではちゃんと理解したいところだ。

 

Udemy先生の資料はなんとおっしゃっているのか。

f:id:shotaro-chida:20180212114122p:plain

 

ふむふむ、勝手に呼ばれるメソッドと。

 

UITextField, UIWebView, UITableViewなどで独自のメソッドを持っているとのことだが、これは頭の端に置いておけばいい系のやつだ。都度調べよう。

 

そもそも僕が今練習で作ろうとしているのは、SNSなどで使うウェブフォーム的なやつだ。こんなやつ。

f:id:shotaro-chida:20180212114719p:plain

このレッスンの完成形は、サインインを押すと、結果の部分にメールアドレスとパスワードがくっついたものが出力される、というものです。

 

現時点では全く実用性ないが、サインインや入り口の処理を作るにあたって、このトレーニングは必要なこと。

 

ViewDidLoadでキーボードが自動で現れたり、returnを押すとキーボードが消えたりという処理も1個1個書いていく。プログラムって予想以上に何するかを1個1個定義していかないとかけないのね…

 

SNS連携がない?知らん!あとで実装する!

色がセンスない?知らん!あとで変えてやる!

 

Udemy先生に教わりながら、まずはこの画面をつくるんだ。

それで必要になった概念が「デリゲートメソッド」

 

どうやら決まったルールがあるらしい。

キーボードを出したり閉じたりするのに、デリゲートメソッドを使えば func (){}とかで機能を作らなくても元からあるものでサクッと行けるのが、これの便利なところらしい。

 

もうデリゲートメソッドっていうのダルいから、「デリー」と呼ぼう。

書いてる途中あまりにも自分の中で定着しなかったので、デリゲートメソッドのままでいいやと思いました。笑

 

まずは手順。

f:id:shotaro-chida:20180212121656p:plain

f:id:shotaro-chida:20180212121729p:plain

f:id:shotaro-chida:20180212121714p:plain

 

キーボードの出し方、閉じ方はこのような感じ。ふむふむ

f:id:shotaro-chida:20180212113802p:plain

 

リターンキーを押した時に呼び出すのはこちら。

f:id:shotaro-chida:20180212113815p:plain

 

こちらを利用しながらコードを書いていく。

しつこいくらいに//コメントを入れながら書いていく。

 

ちょっとガタガタになってしまっていますが、許してください。

f:id:shotaro-chida:20180212135841j:plain

f:id:shotaro-chida:20180212135904j:plain

f:id:shotaro-chida:20180212135916j:plain

f:id:shotaro-chida:20180212140031j:plain

期せずして、途中緑間がいましたね。笑

深夜のテンションでノリで書いてたので、あんまり覚えていませんw

 

で、出来上がったのが…!!

 

youtu.be

 

途中、keyboardが出てこなかったり苦労しつつも、quiitaで調べつつ、出来上がった!

とりあえず、キソのキソですが、達成感あるなぁ!

 

さてさて、次行きますか!ではまた!

 

 

 

 

 

 

 

 

 

 

 

 

 

3月のライオン新刊早く出ないかなぁ

【Swift Challenge】繰り返し処理「Timerの設定の仕方」

ボタンを押した時のタイマースケジュールの解説です(Udemyさんの資料です)

f:id:shotaro-chida:20180211200903p:plain

f:id:shotaro-chida:20180211201033p:plain

 

上記のような感じなので、実際に1秒ごとに繰り返し処理を入れたいときは、こんな感じに。

--------------------------

timer1 = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: { (<#Timer#>) in

       //すっごい処理            

        })

--------------------------

 

現在作っているのは、1秒ごとに6枚の画像を切り替えてパラパラ漫画みたいに、見せるアプリケーション(というよりは画面)なので、これを使うんですねー!

 

この"scheduledTimer"はもう覚えちゃうしかないみたいです。自動的にコードは出てくるので、活用だけ覚えとこ。

 

メモメモ。

 

 

 

【Swift Challenge】Swiftで変数定義入れるとこ / プロパティという概念

さっそく備忘録にどんどん書き込んでいくよ!

 

◆変数定義入れるところ

f:id:shotaro-chida:20180210213524p:plain

変数定義入れるのは、ここ!

一番最初の画面で呼び出しをするのが、viewDidLoad() {} なのだけども、それとViewControllerの間に入れるのね、ふむふむ。

 

 

◆プロパティという概念と変更遷移の際の手順

f:id:shotaro-chida:20180210230804p:plain

UIイメージ以降は定型で覚えるべき、と。

プロパティのところは他にどんなものを入れるパターンがあるのか、というと…

f:id:shotaro-chida:20180210230947p:plain

「Image」と同項目の「Background」「Tint」あたりも適用できるらしい。なるほど。

 

UIImage(named: "ファイル名")の部分、忘れそう…と思った場合は補助で出てくる部分を参考にする、と。

 

プログラマーは基本的に重要な部分しかコードは書かない。

そして忘れたらすぐググれ!!遅いぞカスが!!ググれ、ググるんだ!!!

ということらしいです。

 

プログラマーググるスピードが早いのはこういうことなんですね。

 

ではまたー!!

【Swift Challenge】プログラミング未経験者がUdemyを使って1ヶ月で20個アプリを作る!!

ヤッホー!

 

今回は、プログラミングほぼほぼ初心者の自分がオンライン学習を通じてどこまで実践的なスキルをつけることができるか、それに挑戦したいと思います!

 

使うのは、Udemy。講座買い切り型のオンライン学習サービスだ。

www.mutant-tetsu.com

 

僕の現状のパラメータ(経験値)はこんな感じ。

・デザインのキソ

・VRアプリのディレクターをやった経験ある

・仕様書(&ワイヤーフレーム)は一度作ったことがある

・現在エンジニアと仕事をしていて自分はデザイン側を担当している

・Progateは使ったことがあり、超基礎の部分の考え方は一応理解している(変数の定義づけや呼び出し方など)

・狂おしいほどに自分でサービスを作りたい…!!

 

動機としては、エンジニアの気持ちを理解したいからなんだ…、とかいう気持ちは微塵もなく、ただただ自分のため、アプリ作りたいんじゃ…!という渇望から。

 

サービスをつくるって大変で、プロトタイピングまで持っていくのに色々な人の助けを求めたりしてるとすごく時間もったいないんですよ…(自分で全部できつつ。助け借りるっていうのが一番ベスト)

 

例えば、「コンビニでかわいいと思った人とかと自然に連絡先を交換できるきっかけを生み出すアプリを作りたい!!!」って僕が言ったとしても、「キモいね、無理」ってエンジニアに言われたらプロトタイプすら作れないんですよ!!(あくまで例え話ですからね、あくまで)

 

自分1人では大したことはできない。とにかく有能な人間を動かそう。

そんな記事をこの間は書きましたが、個を磨かない限り集団は動かせないんですよ!!

 

仙道がめちゃくちゃバスケ下手くそだったら、越野はついていかないんですよ!気が強いから!

 

まずは、学びつつ、アウトプットを出しつつ、4月までに自分のアプリのプロトタイプを作ります。ジツは構想あるんですよ…フフフ。

 

なので、しばらくは開発メモみたいになるかも。備忘録も踏まえて。

 

 

 

【経営】気持ち悪いヒロイズムに浸らず、成功という結果を持ってくるには、もうフレフレ振れ!

こんばんは!

 

ここにきてさいきん痛切に感じていること、

 

それは…

 

「自分でやったら負け」ということである。

 

昨年、思い出すだけで動悸がするような、過去の自分に全力でドロップキックからのテキサスクローバーホールドしたくなるような、そんな失敗をしてきたわけだ。

 

そこで学んだのは、自分が「悲劇のヒーロー」になった瞬間、失敗が確約される。

 

辛いと思いながら、でも自分がやるしかないんだと気色悪いヒロイズムに浸って、なんでわかってくれないんだと感じながらも、自分の凄さを確認する。これはやばい。。

 

文章にするとそりゃひどいもんだけど、けっこうこういうことってあると思うんだ。

なぜなら、手を動かして作業している間はそこに集中できる。そして大局を見失う。

 

なんとかはすることができる。でも1つ1つのクオリティが圧倒的に担保できない。

こうなると目を覆いたくなるような結果になってしまう。

 

特にウチみたいなチームだと顕著だ。

 

なぜなら、僕以外のメンバー方が圧倒的に有能だからだ。

 

f:id:shotaro-chida:20180123230603j:plain

↑真理に気づいた時のぼく

 

結局、どれだけ人にうまく振れるかが肝で、作業効率やクオリティが上がらないのは振り方が悪いから。

 

僕の欠点として何でも自分でやりたがる、ということがある。

 

確かに自分のスキルの向上は当たり前。それ以上に素晴らしい人をうまく動かす方が何倍も事業は成長する。

 

ミクロにもマクロにも一緒で、トップが行うのはそこに責任を持ち、必ず "成功" という結果を出すこと。

 

成功させて前に進めば進むほどに優秀なメンバーは成長し、僕もその頼もしいメンバーと一緒に、より大きな成功を目指せる。

 

自分は一切やらない。

 

そのくらいの設計をするべきだ。スケジュール設計が全てだ。

 

結果としてそんなことは全くなくて、このくらいのステージだと雑多なことは僕が全てやることになるのだとは思う。でも、そのくらいの気持ちで設計することが必要だ。

 

自分を「悲劇のヒーロー」にせず、クオリティを高められる部分を完全に任せ、自分は別の部分でもっともっとクオリティを出す。

 

各プロフェッショナルが集まるチーム。僕は全体設計と、僕の専門分野で結果にコミットする。

 

最大の結果を出すことだけを考えよう。

 

他のメンバーが頼もしく見えてきた。

 

「悲劇のヒーロー」にならない。考え尽くした成功を。

 

1年くらい前に読んだ本にそんなことが書いてあったような、とふと思い出した。

小さなチーム、大きな仕事〔完全版〕: 37シグナルズ成功の法則

小さなチーム、大きな仕事〔完全版〕: 37シグナルズ成功の法則

  • 作者: ジェイソン・フリード,デイヴィッド・ハイネマイヤー・ハンソン,黒沢 健二,松永 肇一,美谷 広海,祐佳 ヤング
  • 出版社/メーカー: 早川書房
  • 発売日: 2012/01/11
  • メディア: 単行本
  • 購入: 21人 クリック: 325回
  • この商品を含むブログ (37件) を見る
 

 

ではまた!

 

若手VRベンチャーCOOの一歩ずつしか進めないブログ

ここに書く多くは、自分への戒めも込めた備忘録。

 

持たざる者である自分が少しでも多くのことを学び、スピードアップしていくためのブログです。だから1日1個学んだことを書く、そんなブログにしよう。

 

サクセスストーリー感のある文章にはならないと思いますし、「どうしてこんなに自分は一歩ずつしか進めないのか…」というような、ラノベ主人公の脇にいる凡才の苦悩感がを共感するブログになるかもw

僕は23歳でVRスタートアップのCOOになりました。

でも僕の持っていた武器は一つだけ。ゴリゴリに気合いで目の前のことを遂行すること。ただ、それだけです。

 

要するに、何も持っていなかった。

 

f:id:shotaro-chida:20180122205658j:plain

 

プログラムはかけないし、デザインなんてパワポの資料くらいしか作ったことない。事業立ち上げの経験もなければ、ウェブ運営経験だってない。現・代表の岸上(ずっと彼が代表ですがw)が僕を誘ってくれたのことにも、本当に男気しか感じません。

 

立ち上げから1年目の僕の役目は、とにかく「動かす」ことでした。

・プレスリリース含めた広報・宣伝関連

・アプリディレクター

・外部へのプレゼン/営業

・イベント企画運営

・ウェブデザイン

・フライヤー/バナーのデザイン

・トレイラー動画制作〜美少女ゲームのOP制作

・声優さんの収録でのディレクション

・事業計画書含め資料作成

・UI/UX(※今年の最大注力事項)

etc…

 

細かいのも含めればもっとあるでしょうが、この1年で出来るようになったことは数多くあります。むしろ1年前が怖い。あんなに何もできなかったのに、自信満々にやっていたのか…

 

でも曲がりなりにもプロダクトはしっかり出せたし、大きな事故なくなんとか回すことができました。 

 

ただ、それ自体既に失敗なのです。なんとか回すことができても、クオリティを突き詰められなかった。

 

なんとかするのは当然です。でもクオリティを高めて、事業的な成功(数値も含め)を収められなければそれは"失敗"なのです。

 

何を当然のことを言ってるんだ、と思うでしょうが、僕はそれができていなかった。200%以上本気で死ぬ気でコミットしましたが、僕の最大の失敗です。

だから今年は、「結果」を出す年にする。

これまた当たり前のことですが、僕の立場にいる以上、結果を出せなかったら価値がない。

 

これまで以上に考え、これまで以上に吸収し、これまでにない「事業的・戦略的成功」が求められる。

 

もう自分に言い訳する暇もなければ、 FGOで種火集めてる暇もありません。

 

そのためにも、1日1個学んだことをここに載せていきます。驚異的なスピードでしっかり地に足をつけて学びつつ、勝つべくして勝つ戦をするために。

 

ありがとうございました。地道に頑張りハデに浮上します!

 

ではまた!