ROADTO みちログ

ひとのみちのブログ。大阪でiOSアプリの道を歩くフリーランス。

WWDC2016セッションメモ「What's New in Swift」

WWDC2016セッションを見たメモです。
文中の画像やコードは公開情報から引用しています。
正確で詳しい内容をお求めの方は一次情報の確認をおすすめします。

What's New in Swift

What's New in Swift - WWDC 2016 - Videos - Apple Developer

名前が変わった。f:id:hitonomichi:20160622112528p:plain

NSが付かなくなりますよ。

APIが変わった。

Swift2.2
f:id:hitonomichi:20160622111728p:plain
↓↓↓
Swift3
f:id:hitonomichi:20160622111731p:plain

パラメータのラベリングが変わった

Swift2.2
f:id:hitonomichi:20160622111734p:plain
↓↓↓
Swift3
f:id:hitonomichi:20160622111737p:plain
ひとつ目のパラメータにラベルが付いてわかりやすくなったね。

なくなるのもあるよ

インクリメントの++がなくなる。
昔からのfor文の書き方ができなくなる。
など。
f:id:hitonomichi:20160622111738p:plain

マイグレーション

Swift2.2→3へ変換してくれる。
f:id:hitonomichi:20160622111742p:plain

感想

張り切って変換するぞー。。

WWDC2016セッションメモシリーズはこちら

WWDC2016 カテゴリーの記事一覧 - ROADTO みちログ

WWDC2016セッションメモ「Platforms State of the Union」

WWDC2016セッションを見たメモです。
文中の画像やコードは公開情報から引用しています。
正確で詳しい内容をお求めの方は一次情報の確認をおすすめします。

Platforms State of the Union

Platforms State of the Union - WWDC 2016 - Videos - Apple Developer

iMessage

f:id:hitonomichi:20160622110403p:plain
MSConversation
MSSession
MSMessage

日本も対応。
スタンプを送ってそれに追加イメージして送るなんていう画像コミュニケーションができる。

SiriKit

f:id:hitonomichi:20160622110408p:plain
車、料理など手が離せないことに向いてる。
ただし、出来ることは限られている。
f:id:hitonomichi:20160622110413p:plain

Swift

短く簡単に書けるようになった。

Swift Praygrounds

シェアもできるよ。

Xcode

色のパレットが表示できるようになったよ。 イメージのイメージが表示できるようになったよ。

感想

プラットフォーム全体の状態がよくわかりました。

WWDC2016セッションメモシリーズはこちら

WWDC2016 カテゴリーの記事一覧 - ROADTO みちログ

Road to シェアオフィスの話

f:id:hitonomichi:20160601225727j:plain

今日から少し環境が変わりました。

初めてオフィスと言える場所を借りました。
シェアオフィスです。
場所はグランフロント大阪内のとあるところ。

 
シェアオフィスっていっても、仕切りなしのフリーアドレスなところなので、コワーキングやもっと言えばフードコートみたいな感じ。
一国一城の主とは全然違います。
 
わかりやすくシェアオフィスと表現しますが、正しくはベンチャーが切磋琢磨する空間を提供して大阪を盛り上げようというコンセプトな場所。
毎月数回、朝勉強会があったり、調子はどうか聞いてくれる制度もあったりで、刺激は間違いなくある環境です。
 

経緯は縁

経緯ですが、今回新しくサービス立ち上げプロジェクトがあって、チーム組んでやる必要があり、その拠点として場所を探していました。
 
そんな折にウズウズという起業家勉強会で出会った方がシェアオフィスの話を教えてくれて、すぐ見に行って、程なく契約へ。
 
少し話はズレますが、人の縁とは広がっていくもので。
iPhoneL♡VE部から始まり、その縁で作ったアプリの縁で新サービスのプロジェクトが立ち上がり、
別で、たまたま同じ職場同じプロジェクトという縁で、いろんなタイミングが合って力を貸してくれる人と、
また別の縁でたまたま懇親会で同じテーブルになった方が紹介してくれたオフィスを借り、
それら全く違うところにあった縁がひとつになって仕事が進むという、なんだか不思議な素晴らしいことになってます。
 
話を戻して。
 
今まで家でやってたので通勤時間ゼロでした。
それが毎日3時間持ってかれるのでそこをどう使うか。。
あと今までなかった賃料と交通費とご飯代という固定費をどう考えるか。。

 
運動と情報と刺激とで元は取れると思ってますが。果たして。
 

つまり契約しただけ

ま、契約しただけで、何かを成すのはこれからだし、自分でも大きな事とは捉えてないけど、
後から振り返ったらもしかしたら節目の一つなのかもと思い書き残しておきましょう。
 
私との打ち合わせはグランフロント大阪へお越しください(・∀・)

フリーランスアプリ開発者が2016年1月〜3月に通った道

f:id:hitonomichi:20160104004403p:plain
関西・大阪在住、フリーランスアプリ開発者の私@hitonomichi2016年1月〜3月の活動まとめです。
前回の活動まとめから3ヶ月経ったので自分自身での振り返りがてら、
3ヶ月間の総括をします。
フリーランスな自分は成果をアピールしないと世間的に死んでしまいますので。
え?しない?
そう。
ごめん。

お仕事のお問い合わせはこちらから。
f:id:hitonomichi:20160410090308p:plainROADTO Webページ

トピック

2016年1月〜3月に通った道

  1. セキュア認証アプリ
  2. 研究機関の診断アプリ
  3. 店舗集客アプリ
  4. BLE連携アプリ
  5. try!Swiftに参加

それではいってみましょう(σ・∀・)σ
順不同です。

1. セキュア認証アプリ

常駐対応のAppStoreアプリ案件。
公開鍵・秘密鍵生成、暗号化・復号化でiOS・Web連動して認証する機能の一部を実装。

公開鍵と秘密鍵を生成してKeyChainに保存する、
SHA-256でハッシュ、
RSAの公開鍵(Public Key)で暗号化、秘密鍵(Private Key)で復号、
なんていうセキュリティなことをやってました。
おかげで暗号化周りにちょっと詳しくなりました。

2. 研究機関の診断アプリ

研究機関内専用iPadアプリ。
受託案件。
音声を録音する機能を使います。
特別難しい技術は使わなかったけれど、 iPadアプリはすぐにメモリが逼迫するのでちょっと神経使います。
研究機関の診断アプリは継続してお仕事頂戴してる企業様からの案件です。
リピート頂きいつもありがとうございます!

3. 店舗集客アプリ

AppStore向けアプリの受託案件。
2016年前半リリース予定。
大阪ミナミ地域の店舗集客アプリ。
去年作ったバルイベントアメホリバル®」アプリに続き、iBeaconを搭載しています。
iBeaconとはBLEを発信する発信機みたいなもので、近くにいるとお知らせしてくれます。
もうじきリリースになる予定です。

アメホリバルアプリについてはこちら。 hitonomichi.hatenablog.com

4. BLE連携アプリ

AppStore向けアプリの受託案件。
目下絶賛開発中。
BLE機器をリアル世界で有用なものに昇華していくプロジェクトをすすめています。
前述のiBeaconもそうですがBLEを扱うことが増えてきて嬉しい!
つながるって素敵!つながるって楽しい!

5. try!Swiftに参加

「try!Swift」というカンファレンスに参加。
SwiftというのはiPhoneアプリを作る時に使うプログラム言語です。
Swift欲を掻き立ててくれて、ケツを叩かれて、自分にとってとても有効なイベントでした。
hitonomichi.hatenablog.com

総括

前回の総括でのプランからどうだったか。

受託案件中心にしたいと言っていたけど?

ほぼほぼ受託に。
案件も途切れることなく頂いていて、新規のお問い合わせも継続して頂いています。

  • 新規案件お問い合わせ数 10件
  • 新規案件につながったのは 3件

ブログの開発実績とWebを見て頂きご連絡頂くことが多いです。
継続して頑張ります。

iPhone+何かをしたいと言っていたけど?

iBeaconの案件もあり、BLEアイテムを使う案件もありで良い感じ。
リアルとネットをつなげることができて、これが有用なものであればこれ幸いです。
頑張ります。

一人からの脱却と変化と言っていたけど?

徐々に声をかけ始めています。
おかげで少し進展。
苦手なところを手伝ってもらうことからが良い気がしています。
仕事がないと回せないのでそこは努力。

2016年4月〜6月への道しるべ

これからについて。

iPhone+何か

変わらず引き続きで。
iBeaconが成熟してきた感。
種類が増えたし、世の中にiBeaconを使用したモデルケースも増えてきました。
BLEも少しわかってきたし、引き続き勉強しつつ頑張ります。

一人からの脱却と変化

仕事とって誰かと一緒にやるところからかなぁ。
Win-Winでやれる状況にしたいです。

おわりに

完全に受託になって朝早く起きる必要がなくなってしまい、また寒い時期というのもあって、朝型が崩れてます。
暖かくなるので戻していきたいところ。
邪魔がいないし一日を有効に使いたいですね。

それと一緒に外出の機会が激減しています。
外に出るように心がけないと滅入ってしまいますね。
健康第一。

案件状態は周りの皆様からのご縁のおかげで安定しています。
先のお話も頂いていてありがたいことです。
引き続き精進していく所存でございます。

皆様どうぞ今春もよろしくお願いいたします。

お仕事のお問い合わせはこちらからどうぞ。
f:id:hitonomichi:20160410090308p:plainROADTO Webページ

過去の道

Swift2の何回も調べてるちょっとしたこと

Swift2でなんども調べてるちょっとしたことを書きます。

タイマー

let timer = NSTimer.scheduledTimerWithTimeInterval(1.0,
                                                   target: self, 
                                                   selector: #selector(methodName:), 
                                                   userInfo: nil, 
                                                   repeats: true)

遅延実行

//1秒遅延
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(1.0 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue(), {
    // 遅延する処理
})

非同期実行

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
    // 非同期処理
    dispatch_async(dispatch_get_main_queue()) {
        // メインスレッド処理
    }
}

セマフォ

// 同時実行可能数 = 1
let semaphore = dispatch_semaphore_create(1)
// ここで待つ
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER)
// 処理が終わったことを通知
dispatch_semaphore_signal(semaphore)

非同期を同期的にする。

// 同時実行可能数 = 0
let semaphore = dispatch_semaphore_create(0)
// 非同期処理 ※DISPATCH_QUEUE_PRIORITY_BACKGROUNDを使うこと
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)) {
    // 処理が終わったことを通知
    dispatch_semaphore_signal(semaphore)
}
// ここで待つ
while dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW) != 0 {
    // 10秒間外部からのメソッド実行要求を受け付ける
    NSRunLoop.currentRunLoop().runMode(NSDefaultRunLoopMode, beforeDate: NSDate(timeIntervalSinceNow: 10))
}

画面サイズ

//画面幅
let width = UIScreen.mainScreen().bounds.size.width
//画面高さ
let height = UIScreen.mainScreen().bounds.size.height

アニメーション

UIView.animateWithDuration(1.0, delay: 3.0, options: .CurveEaseInOut, animations: { () -> Void in
    // アニメーション処理
}, completion: { (finished: Bool) -> Void in
    // アニメーション完了後の処理
})

Swiftのカンファレンス「try!Swift」に参加した感想

f:id:hitonomichi:20160302094846j:plain
2016年の3/2〜3/4に開催された「try!Swiftというカンファレンスに参加してきました。
今の思いを残しておきます。

フリーランスな私はもちろん自腹で行ってきました。
行き帰りは夜行バスで。若者満載のね。かわいそう自分。

カンファレンスの概要

SwiftというのはiPhoneアプリを作る時に使うプログラム言語です。
対象レベルとしては内容からいくと上級者向けでしょうかね。

最後にあった発表によると、
参加者536人。そのうち海外からは147人!
インタータショナル!

ちなみにセッションもほとんど英語でした。

チケットは3日間で$300ほど。

会場

会場は渋谷のサイバーエージェント社。
渋谷マークシティにあります。

会場の設備

最高でした。

5つのスクリーン。素晴らしい。
一番後ろからの眺めがこんな感じ。
f:id:hitonomichi:20160304143111j:plain

一人一個のレシーバーで同時通訳。
しかも日本語→英語、英語→日本語のふたつのチャンネルあり。
素晴らしい。

朝食がスタバ。 コーヒーやジュースがスタバ。
f:id:hitonomichi:20160302085707j:plain
美味しくてボリュームのあるランチがあり、
外に出る必要まったく無し。
コンビニ行く必要まったく無し。
素晴らしい。

充電コーナーも用意してもらいました。
f:id:hitonomichi:20160302131305j:plain

セッション

細かい内容についてはこれから復習です。
ちゃんとやりますよ。やりますとも。

セッションについてざっくり良かったところ。

  • 勉強するポイントとキーワードが拾えた。
  • ライブラリ活動に興味を持てた。
  • Swiftらしい書き方が掴めた。

一人でやってると見えない掴みにくい部分が見えました。
セッションがシングルスレッドなのはよかったです。
休憩時間に共通の話ができて知見の共有がしやすいと感じました。

セッション以外

今回もたくさん初めましてやいつも見てますをして、出会いがたくさんでした。
エンジニアとしての横のつながりができました。
この道がまたどこかでつながることが楽しみです。

大阪に住んでいると、東京の勉強会にそうそう行けない。
今回ほどの大きなカンファレンスでないとなかなか参加しづらいので、
そういう意味でもありがたかったです。

不満点

唯一苦言を呈すなら、自分の勉強不足・知識不足。
善処します。。

それ以外は本当に「無し」です。
当初チケットが高いなんて話がありましたが私は全く感じませんでした。
満足です。

謝辞

本当に至れり尽くせりで過ごしやすかったです。
国外から来られた皆様、スピーカーの皆様、書き起こしの皆様、運営の皆様、お話して頂いた皆様、本当にありがとうございました。

感想

正直、自分には難易度が高かったです。
言語自体が好き、言語が趣味な方には遠く及ばないなとまた痛感しました。
ほんとすごい。尊敬。

それはそれとして、この機を自分にどう活かすか。

私の仕事はモノづくりで、言語は道具。
道具を正しく使いたい、道具が強力になったら良い、という思いから参加しました。
英語が上手に〜、言語をもっと深く〜、と言ってもキリがないので、直接仕事に関わるセッションをピックアップして復習します。
キーワード与えてもらえてそこから知識を広げていけるので、最初から一人でやるよりもずっと有効なはず。

それにしても、あっという間の3日間でした〜。
1日目の早朝に渋谷に着いて、帰りのバスに乗るまで、一切の観光無し。
お土産も買えませんでした。
ほとんど写真撮ってないなー。
またもあったら参加したい。・・・新幹線で。

AutoLayoutを使っているUIViewをアニメーションする方法

AutoLayoutを使っているUIViewのアニメーション。
制約を更新してlayoutIfNeededを呼ぶ。

- (void)move {
    self.constraintViewY.constant = 100;
    [UIView animateWithDuration:0.5f
                          delay:0.0 
                        options:UIViewAnimationOptionCurveEaseInOut 
                     animations:^ {
                         [self.view layoutIfNeeded];
                     } completion:nil];
}

知らないと知らないよね。

自己紹介
メガネは売っていません
高浜 一道(たかはま かずみち)
大阪でiOSアプリの道を歩くフリーランス。
iPad・iPhoneとサーバを連携した、JSONやDBといったキーワードが出てくるツール系が多めです。
お仕事のご依頼やご連絡はこちらから。
お仕事ください!
Web : ROADTO
ML : k-takahama(a)roadto.jp

個人的なアカウントはこちら。
Tw : @hitonomichi
Fb : kazumichi.takahama