GASBLOG

経営者+サラリーマン+プログラミングの忙殺ブログ。

やってもうた!

おはようございます。

 

ここ数日、今までやっていた仕事の方が面倒なことになったり、走り始めたプロジェクトを進めたり...などなど。

 

言い訳ではありますがなかなかコードを書いていくことができずもどかしい気持ちでありました。

 

本当は20時間くらいずっとカタカタやっていたいのですけどね...

 

ちなみにこれまで何か始める時は例外なく20時間くらいグミを食べつつ、コーヒー飲みつつやっていました。笑

 

他の時間に取られることなくやっていたのです。

 

色々とやり直したり、ちょっとやったり...

まあ、これからもしっかりコード書いていきます。

 

ではまた。

挫折しそー。singleviewappかい!

おはようございます。

 

結論から申し上げますと、昨日のブログ記事に書いた通りToDoリストappの作成は根本から違っていたようです。

 

ようやく原因判明。

 

~.hだとか、~.mのファイルに関してはヘッダー・フッターの意味があるようです。

案外ToDoリストに関しては初歩的なアプリ開発だったんですね。

というのはほぼコードを書かずに作成できるとのことでした。

 

プロジェクトの作成時はsingleviewappで作成して、プロジェクト作成時の初期設定画面で言語はswiftではなくobjective-cで作成でした。

 

なるほど...

 

とりあえず理解したので次のステップへ進んでいきます。

 

ようやくtodoリストの作成です。笑

マジで初心者ですよね。

 

f:id:gas_serv:20200520093425p:plain

そして...

 

取り組もうとIBOutlet接続した瞬間...

 

エラーまみれ。

 

なんで〜?!?!

 

なんでこうなる?

 

そろそろ挫折しそう。笑

また明日。

また、無い。

おはようございます。

 

本日もアプリ開発をやって行っているのですが、またトラブル発生...!!

とある方のブログを参考にボタンの配置等やって行って、いざコードを書く場面となったときに発覚...。

 

New Fileから同じようにやっていっていたのですが、なぜかエラーメッセージが。

参考元の方が編集していたのが「viewcontroller.m」で僕が編集していたのが「viewcontroller.swift」。そりゃあ合わない訳だと思い、viewcontroller.mを探します。

 

「無い。」

 

またか!!

 

なかなか素直に開発させてはくれないようです。

なかなか厳しいですね。

ただ、こういった場合はわかっているつもりで根本の設定が違っている場合が多数です。

 

ここについて調べて行ってみます。

 

早く開発にうつらせていただきたい。

というのが本音でございます。

今日は開発の時間は終了してしまいそうです。

 

なかなか進みませんが、毎日しっかりやっていきます。

 

ではまた明日...。

鉄板な資格の勉強の仕方!

おはようございます。

 

本日は一行もコードを書いていません...

 

理由は、参考にできるサイト・記事を見つけられていないためです。

そこで今日はまず参考にできる物を探して行ってみました。

 

結果ですが、僕が見つけたのはGithub

 

これは多くのエンジニアが使っているサイトで、プロジェクト開発時のソースコードを管理できるサービスです。

リポジトリの管理リポジトリ については用語集に記載致しました。)をして、それを共有することができたりします。

 

開発者にとってなくてはならないサービスということで、これを使わない手は無いなと思いました。

 

ここに辿り着いたのはデカいと思います。

 

早速コードを検索していきます。

 

「for beginner」

 

何も出てこない。

笑。

 

そりゃあそうですよね。

わざわざ開発した物に初心者向けとか記載しないですよね。

 

ということで、再度googleで初心者向けアプリ開発を検索していきます。

見つけたのが「バイト計算機」。

容量を計算するヤツですね。

早速Githubで検索。

 

byte calculator

f:id:gas_serv:20200513092234p:plain

めちゃめちゃ出てきますね笑

fee calculator

こんな物がありました。

 

まずこれを複写していきましょうか。

目当てのbyte calculatorは見つけられなかったので、一旦これをやってみます。

 

ここから僕の勉強理論を記載していきます。↓

いきなりですが、実は国家資格をいくつか持っています。

国家資格に限らず資格というと20近く持っているんじゃないかと思います。

学生の時なんかは特に資格集めをしていましたよ笑

 

で、答えのある物の勉強方法で見つけた勉強方法がこれ。

「とりあえず狂ったように繰り返す」

ということです。

 

プログラミングを学習し始めたときに感じたのが、型があるなら資格と同じように繰り返し手を動かせば良いじゃんってことです。

 

とりあえず、何度も何度も登場する用語などに関しては一旦概要を理解して、それ以外は基本的に繰り返す

 

これが鉄板なんですよね。

 

とりあえず理解は後から。

 

こういった感じでアプリ開発も型はとりあえず黙々と手を動かして染み込ませる

という感じでやっていきます。

 

資格もそうですが、まず資格を取って、あとはそれが必要な現場で実践となりますよね。

 

とりあえず、一旦流れができたのでホッとしています。

この感じでバシバシ手を動かして染み込ませて必要な情報をインプットしていきます。

よし。

では本日の朝の部はこれにて。

じゃんけんアプリ ソースコードの検証...。

おはようございます。

 

合間合間でソースコードの確認をしていたのですが、とうとう行き詰まるという事態に。

 

以下が参考にしていたソースコードです。

 

[code language=”python”]
import UIKit
import GameplayKit

class ViewController: UIViewController {
let randomJanken = GKARC4RandomSource()
@IBOutlet weak var cHand: UIImageView!
@IBOutlet weak var jankenLabel: UILabel!

override func viewDidLoad() {
super.viewDidLoad()
}

@IBAction func pRock() {
jankenComputer(0);
}

@IBAction func pScissors() {
jankenComputer(1);
}

@IBAction func pPaper() {
jankenComputer(2);
}

func jankenComputer(player:Int) {
let comp = randomJanken.nextIntWithUpperBound(3)
var msg = ""
switch comp {
case 0:
cHand.image = UIImage(named: "1_rock.png")
switch player{
case 0:
msg = "あいこ"
case 1:
msg = "あなたの負け"
case 2:
msg = "あなたの勝ち"
default:
break
}
case 1:
cHand.image = UIImage(named: "1_scissors.png")
switch player {
case 0:
msg = "あなたの勝ち"
case 1:
msg = "あいこ"
case 2:
msg = "あなたの負け"
default:
break
}
case 2:
cHand.image = UIImage(named: "1_paper.png")
switch player{
case 0:
msg = "あなたの負け"
case 1:
msg = "あなたの勝ち"
case 2:
msg = "あいこ"
default:
break
}
default:
break
}
jankenLabel.text = msg
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
[/code]

 

 

そして以下が僕の書いたコード。

[code language=”python”]

import UIKit
import GameplayKit

class ViewController:UIViewController{
let randomJanken = GKARC4RandomSource()
@IBOutlet weak var cHand: UIImageView!
@IBOutlet weak var jankenLabel:UILabel!

override func viewDidLoad() {
super.viewDidLoad()
}

@IBAction func グー(_ sender: Any) {
jankenComputer(player: 0);
}

@IBAction func チョキ(_ sender: Any) {
jankenComputer(player: 1);
}

@IBAction func パー(_ sender: Any) {
jankenComputer(player: 2);
}

func jankenComputer(player:Int) {
let comp = randomJanken.nextIntWithUpperBound(3)

//  Value of type 'GKARC4RandomSource' has no member 'nextIntWithUpperBound'
var msg = ""
switch comp {
case 0:
cHand.image = UIImage(named:"グー.jpg")
switch player{
case 0:
msg = "あいこ"
case 1:
msg = "あなたの負け"
case 2:
msg = "あなたの勝ち"
default:
break
}
case 1:
cHand.image = UIImage(named:"チョキ.jpg")
switch player {
case 0:
msg = "あなたの勝ち"
case 1:
msg = "あいこ"
case 2:
msg = "あなたの負け"
default:
break
}
case 2:
cHand.image = UIImage(named:"パー.jpg")
switch player {
case 0:
msg = "あなたの負け"
case 1:
msg = "あなたの勝ち"
case 2:
msg = "あいこ"
default:
break
}
jankenLabel.text = msg
}
override func didRecieceMemoryWarning(){
super.didRecieveMemoryWarning()

// Value of type 'UIViewController' has no member 'didRecieveMemoryWarning'
}
}
[/code]

// ここの内容わからず...

 

 という感じです。

赤文字で示した部分がエラーの箇所。

// で示した部分がエラーの内容です。

 

いやーわからない...。

 

まず本日から違うサイト参考にして違うアプリを作ってみようかなと思います。

上のジャンケンアプリに関しては、もしよろしければフィードバックいただければなと思います!

 

申し訳ありませんがよろしくお願い致します。

 

朝の部は一旦終了!!

一筋の光が見えたジャンケンアプリ!

ようやく諸々わかったのでジャンケンアプリを一通りコードを複写して打ち込んでいってみました。

 

結果...

f:id:gas_serv:20200508093715p:plain

ガーン!!!!

 

マジか...

 

こうなることは半分わかっていたのですが、ちょっとショックですね。

 

ちなみにこれ、僕が思う”任意の名前”を添削したあとです。

任意の名前というのは、グー、チョキ、パーといったふうにリンクさせる際に指定したラベルの名前などです。

ここには画像の名称も含んでいます。

 

添削した後なので、手詰まり状態...

 

何かまた根本的に間違っていることがあるのだと思います。

 

だけどなんか楽しい!!

 

以前javaで学んだことが出てきたりするのでなんとなくイメージ掴めてきたかなー

という感じです。

 

ま、基礎的な部分ですけどね。

 

コピペではなく実際に手を羽後欠かすことによって、部分ごとの疑問点など出てきて、それを検索すれば出てきて解決するのでそこが楽しい部分なのだと思います。

 

こんなにエラー出ていますが、なんとなく対応する部分なんかもわかってきて今後どんどん進めていけるかなといった感じです。

 

希望の光が見えました!

 

よし!やるぞーーーーー!

Xcodeでの画像の適用方法について。

こんばんは。

一旦、画像の適用につまずいてわかりやすい記事がなかったのでここに書いておきます。

 

まず、アプリに画像を表示する手順としましては以下の通りになります。

 

画像を準備

Xcodeにアップ

Xcode上のオブジェクトで適用

 

という感じです。

他の画像をただ画像として認識する物(エクセルなど)とは違って

直接その部分に適用という感じではないようです。

 

具体的な手順を説明します。

 

まず画像を準備

※今回はジャンケンアプリ制作にあたってこの画像を準備しています。

 

f:id:gas_serv:20200506175100p:plain



ここで準備した画像は4枚です。

僕のアイコンとグー・チョキ・パーとなっています。

 

まずはウインドウ左側の「Assets.xcassets」に画像を入れていきます。

Finderを開いて、適用したい画像をここにドラッグすればOKです。

f:id:gas_serv:20200506175604p:plain

このスクショを見ていただくとわかるように、このグーチョキパーの3枚の画像が入っていることがわかります。

 

次に適用ですね。

上の「+」ボタンからObject Libraryを開いて、ここに出ているウインドウを表示します。

f:id:gas_serv:20200506180704p:plain

検索で「Image View

というのを表示させます。

これをドラッグして配置します。

f:id:gas_serv:20200506180932p:plain

 

そして、ドラッグした部分をクリックすると、右側の一覧が表示されます。

ここで、一番上のimageという部分をプルダウン。

すると、画像の名前と小さいアイコンが表示されていますので、適用したい物をクリック。

f:id:gas_serv:20200506181009p:plain


という感じです。

ここまで行くのに非常に時間がかかったので、この記事が参考になると嬉しいですね。

ではジャンケンアプリの開発を再開していきます。

 

では!