読者です 読者をやめる 読者になる 読者になる

パンダからの脱却

赴くままに

swift基本文法 part2

swift

Optional

  • nilになりうる値を管理するための型
  • swiftではoptionalではない変数はnilになりえない
  • あるデータがnilかどうか曖昧なままだとエラーになるため、なりうる変数はオプショナルする。このとき「?」をつける

var s: String?

s = nil

  •  アンラップする(=オプショナルの値を取り出すときは「!」をつける)

let name: String? = "yamada"

let msg = "hello" + name

  • あんラップするときの注意事項。必ず値がnilでないことを確認しなくてはいけない。if分などでチェックする。

if name != nil{

    let msg = "hello" + name!

}

  •  一時的にsname の値を入れ、もし値が入ったら条件が真になるため、if分が実行されるやり方

if let s = name{

    let msg = "hello" + s

  • 暗黙的にアンラップされるOptional型もある。はじめからアンラップするやり方。

var label: String!

label = "score"

println(label)

 

将来へのメモ

その他

4-8月にかけて開発力をつけたい!てことで、社内業務としてandroid開発をやらしていただきました。

 
けれど、挫折。。。自分は頭が悪いからと諦めていた今日この頃。
 
 
それをjeffsukeに伝えたら「その言い訳は好きじゃないな。"30歳からエンジニアやるには遅すぎるからマネジメントやる"って年齢を理由に逃げるのと同じだよね。実際にカヤックに遅咲きで入った堤修一のように世界的に活躍している人だっているのに、それは理由にならない」と。
的を得ていて何も言えない。話を聞いてくれて意見を引き出してくれて、道筋を整理してくれた友達に大感謝でした。
 
 
将来、技術力があるプロダクトオーナーになるために今後の私の人生プランをしっかりたて少しずつでも前に進もう。
 

swift基本文法 part1

swift

変数 var

以下のような複数の書き方ができる

var msg: String

var msg: String = "hello world"

var msg = "hello world"

定数 let

let s = "hello world"

出力

println("hello world")

--> "hello world"

出力 文字列と定数または変数

バックスラッシュと括弧で定数と変数を囲む

msg = "hello world"

s = "hoge"

println("msg: \(msg), s: \(s)")

--> "msg: hello world, s: hoge"

数値データ

String = "hello world"

Int = 11

Float = 4.234234   または Double = 4.234234

Bool = true  または  false

四則演算 

「+ - * / %」を使用する

let x: Float = 3.0 % 0.5

x

--> 6.0

「++   --」を使用する

var a = 0

++a

a

--> 1

文字列を結合する

let t = "hello " + "world"

t

--> "hello world"

文字列と数値を結合する

let a = "Green"

let b = 004

let c = a + String(b)

--> "Green004"

「 &&   ||   !」を使用する

true && false

true || false

!ture 

--> false

--> true

--> false

タプル

複数の書き方がある

let error = (404, "not found")

error.0

error.1 

let error = (code:404, msg:"not found")

error.code

error.msg

let error = (404, "not found")

let (code, msg) = error

--> 404

--> "not found"

let error = (404, "not found")

let (code, _) = error

code

error

--> 404

--> エラーとなる

配列

定義、代入

var colors: [String] = ["blue", "pink"]

colors[0]

colors[1] = "red"

colors

--> "blue"

--> ["blue""red"]

配列数、空かどうか

var colors: [String] = ["blue""pink"]

colors.count

colors.isEmpty 

--> 2

--> false

末尾に追加

var colors: [String] = ["blue""pink"]

colors.append("green")

colors

-->  ["blue""pink", "green"]

指定して追加

var colors: [String] = ["blue""pink"]

colors.insert("gray", atIndex: 1)

colors

-->  ["blue""gray", "pink"]

削除

var colors: [String] = ["blue""pink"]

colors.removeAtIndex(1)

colors

--> ["blue"]

指定して代入

var colors: [String] = ["blue""pink"]

let selectColor = colors.removeAtIndex(1)

selectColor

--> "pink"

末尾を削除

var colors: [String] = ["blue""pink"]

colors.removeLast()

colors

空の配列定義

var emptyArray = [String]()

辞書 

定義、代入

var users: [String: Int] = [

    "yamada": 500,

    "suzuki": 800

]

users["yamada"]

--> 500

配列数、空かどうか

var users: [StringInt] = ["yamada"500"suzuki"800]

users.count

users.isEmpty

 --> 2

--> false

追加

var users: [StringInt] = ["yamada"500"suzuki"800]

users["sato"] = 900

users

--> ["yamada"500"suzuki"800, "sato": 900]

指定して削除

var users: [StringInt] = ["yamada"500"suzuki"800]

users.removeValueForKey("yamada")

users

--> ["suzuki": 800] 

更新

var users: [StringInt] = ["yamada"500"suzuki"800]

users["suzuki"] = 10

users

var users: [StringInt] = ["yamada"500"suzuki"800]

users.updateValue(10, forKey: "suzuki")

users 

--> ["yamada"500"suzuki": 10] 

キーと値のみそれぞれ取り出す

var users: [StringInt] = ["yamada"500"suzuki"800]

let keys = Array(users.keys)

let values = Array(users.values

--> ["yamada", "suzuki"]

--> ["500", 800]

空の辞書配列定義

var emptyDictionary = [String: Int]()

if文

三項演算子「> >= < <= == != && || !」を使用する

let score = 55

var result = ""

 

if score > 60 {

    result = "Great"

}else if score > 50 {

    result = "Good"

}else{

    result = "so so ..."

}

 --> Good

switch文

let num = 9

 

switchnum{

case0:

    println("zero")

    fallthrough

case 1,2,3:

    println("small")

case4...6:

    println("4/5/6")

case7..<9:

    println("7/8")

caselet n where n>10:

    println("over10")

default:

    println("n.a.")

}

 --> "n.a."

let num = 0

 

switchnum{

case0:

    println("zero")

    fallthrough

case 1,2,3:

    println("small")

case4...6:

    println("4/5/6")

case7..<9:

    println("7/8")

caselet n where n>10:

    println("over10")

default:

    break

}

--> "zero"

--> "small" 

while文

var n=0

while n < 10{

    println(n)

    n++

}

do {

    println(n)

    n++

}whilen < 10

--> 0

--> 1

--> 2

--> 3

--> 4

--> 5

--> 6

--> 7

--> 8

--> 9

 for文

for var i = 0; i < 10; i++ {

    if i == 3 {

        break

    }

    println(i)

}

--> 0

--> 1

--> 2

範囲演算子を使用

for i in 0...4 {

    println(i)

}

--> 0

--> 1

--> 2

--> 3

--> 4

配列を使用

let a: [Int] = [5, 3, 10]

for i in a{

    println(i)

}

--> 5

--> 3

--> 10

辞書を使用

let d = ["yamada": 500, "suzuki": 900]

for (k, v) in d{

    println("key:\(k) val:\(v)")

}

--> "key:yamada val:500" 

--> "key:suzuki val:900" 

 

 

 

 

 

ZIGExN swift girlsに行ってきた

swift

昨日は株式会社ZIGExNが運営している女性限定のswift勉強会へ行ってきました。

【満員御礼】9/17(水)開催 - ZIGExN Swift Girls 〜集え☆iPhoneアプリを作りたい女子〜 - 株式会社じげん | Doorkeeper

 

アジェンダは、19:00-22:00でswiftを使って、Flappy BirdのパロッたゲームまたはTwitterAPIを利用してTwitterアプリを作るというものでした。

 

私は後者のTwitterアプリ制作にチャレンジ!進め方は下記のGitHub上にとても丁寧に書かれているので、スムーズに進めることができました。周囲をみたらiOS開発自体が初めての方でも問題なく進められていたとおもいます。開発自体が初めての方は、講師の人に質問しながら進めていましたが、基本的に困った様子はあまりなくほとんどの方が制作できていました。


kiiita/SwifferAppForBeta7 · GitHub

 

ドットインストールでxcode5のstoryboardの使い方を学んだ状態で行くと30分くらいで終わるプログラムになります。


【旧版】iOSプログラミング入門 (全24回) - プログラミングならドットインストール

 

BaaS内の仕組みやプログラムで何が書かれているのかまで細かく見るのは難しかったですが、swiftを触るきっかけになったので行ってみてよかったです。

 

また、女性限定ということもありレベルが高くなく講師の方にmacの使い方を質問するなど、ざっくばらんに色々お話できたので楽しかったです。iOSアプリ作ってみたいと考えているけど自分一人じゃ動けない人は、きっかけ作りに参加してみるのはどうでしょうか?

 

第2回も開催するようなので、私もまた参加してみたいですね。

 

 

 

※Flappy BirdをZIGExN風にパロッタトレーニングはこちらになります。


g08m11/FlappyStyleApp · GitHub

Android Wear開発環境構築

android

今日はAndroid wearを触ってみました。

 

用意するもの

 

環境構築のやり方

環境構築はだいたいこちらに載っていたので参照して構築してみてください。

15分ではじめるAndroid Wear開発 - 実機を使った開発環境の作り方 - Qiita

 

異なる点としては、JDK6でも問題なく動作したよってとこです。

そして、忘れてはいけないのがAndroid端末とwear端末をデベロッパーモードにすること。素晴らしいことに載せてくれている方がいます。

Android Wearのアプリの作り方 - Build Insider

 

これで準備完了。とっても簡単ですね。

 

 

自己紹介

その他

ブログというものを初めて見ました。

 
このブログでは、ITに興味はあってWEB系の会社に入ったけど、知識が底辺で全然わからない社会人歴2年目の葛藤を書いていきます。