まりぱらおーぐ

主にコンピューター周辺の話を中心に、気ままに書いていきます。

Swift愛好会 vol20 ~SwiftでWebRTC実装ハンズオン~に参加してきました

勉強会に参加してきました

2017年6月18日(日) に開催された「集まれSwift好き!Swift愛好会 vol20 ~SwiftでWebRTC実装ハンズオン~」に参加してきました。

love-swift.connpass.com

ハンズオン資料

以下の資料に基づいてハンズオンをしました。

qiita.com

qiita.com

事前準備

自分でやってみたのですが、サンプルコードと関数名とかが違いすぎて面倒だったので、git clone にて作成^^;;;

ハンズオン

@massie_g さんから、講義形式で、最初に、通信シーケンスについての説明をしてくれました。

qiita.com

@tnoho さんが、ひたすら先ほどのハンズオンについて話してくださいました。

自分は出遅れたので、ハンズオン資料みながら、ひたすらコード確認、打ち込む or コピペしながらやっていたら、いつのまにか終わったという状況でした。 処理の流れが理解出来る、よくできたハンズオン資料だと思います。

また、同じテーブルの方や、他の方々に教えていただいたり、教えたりで、楽しかったです。いつもながらですが、感謝です。

懇親会とLT

懇親会の中でLTを。記憶のある範囲でご紹介。

ReactNative事始めから簡単なサンプルを読み解くまでの実践記録ノート @fumiyasac

あとでじっくり読む qiita.com

会社のお金で行ける海外カンファレンスはいいぞ@ktanaka117

羨ましいの一言に尽きる。

楽にCore Animation使っていく話@yhirose741

スター欲しいそうです。

github.com

GUIでアニメーション作るとコードになる。どうなってるんだろう。

www.quartzcodeapp.com

CGaffineTransform実践入門@lovee

行列を使ったアニメーションの話。いつも@loveeさんのスライド、すごいと思います。

WebRTCの話@Tukimikage

すいません。一番聞いてなかったです。 IPv6のところだけ気になりました。

WebRTCと機械学習の話@tnoho

iOS × WebRTC × Tensorflow Pythonのドライバを自分で書かれたそうです。

にしても、ハンズオン作ったり、パワーありますね。

WebRTC芸人@massie_g

これは、WebRTCのLTを見るべきでしょうね。

www.instagram.com

感想

ライブラリを使うともっと簡単に実装できると思うのですが、このハンズオンは、通信のやりとりの仕方がよくわかるようになっていて、非常に興味深かったです。ネットワークや、サーバ側の知識が若干あると、知見が深められそうです。

あと、Swift の deinit 命令、初めて知りました。まだまだ、最近のプログラムの書き方についていてけないですね。

MacBookProの再構築

長期休暇のノルマ

最近調子の悪いMacBookProの調整をしたかったので、いろいろ調査して復旧したのでまとめておく。

OSのアップグレード

Xcodeの最新版で、Sierraにすることが必須になったのであきらめてOSのアップグレードをすることにしました。 原因はよくわからず、ファイルシステムでもエラーが出ていたので直したかったというのも理由。

ということで、新規構築。USBメモリは以下を参考に作成。

http://ottan.xyz/macos-sierra-bootable-disk-5007/ottan.xyz

support.apple.com

再設定

最近使っていないアプリケーションはばっさり切り捨てて、使っているものをリストアップして整理。

再設定の参考にしたのは以下。

techracho.bpsinc.jp

goodluckmyway.com

容量を食っていた場所

以下をもとに調査。原因は、iPhoneとかの古いバックアップ。きれいに消えていなかったり。 あとは、削除したりしたアプリケーションのゴミデーター。

discussionsjapan.apple.com

課題

やはり、予備機がほしいところ。MacBookProの現行機種は、自分の物欲をあまり刺激しないので、次の機種で。 2013年版なので、そろそろかなぁ。

SAP Cloud Platform SDK for iOS

SAP Cloud Platform SDK for iOS がリリース

f:id:o_chicchi:20170617131138p:plain

今日、友人から Appleからメール来ていると聞いたので、チェックしたらSAP から、SDK がリリースされていました。時間あったら、週末にダウンロードして試してみようかと思っています。 一応、Xcode 8.2.1 と、8.3 対応版が出ている模様。

もともと、SAPから、今月末にリリースするよというアナウンスは出ていたので、やっと出たというのが自分の感想です。

なんか、デモ見ると、ウィザードさくさくすると、StoryBoardに、FIoriの画面遷移が作れるとか、誰が嬉しいのか意味が分からないです...。どんなコード吐かれるか興味ありますね。

そもそも、嬉しいような嬉しくないような。SAPコンサルタントという自分の仕事とMacOSや、iOSと遊ぶという趣味が勝手にくっつくとか意味がわからないです。それに、SAPとか、Fiori とかにいろいろ思うところあるので。

あ、勤務先に、Macをリースしてもらう口実にはなるかw リースしてくれたら、デモするよ...と。

www.sap.com

(初回掲載は、Facebook)

try! Swift 2017 in Tokyo に参加者&スタッフとして参加してきました

try! Swift 2017 in Tokyo

try! Swift 2017 in Tokyo に参加してきました。

www.tryswift.co

f:id:o_chicchi:20170325135333j:plain

スタッフとして、参加者として

日頃からお世話になっているSwift愛好会主催の七島さんから、ボランティアスタッフを募集する予定であるから、応募してはどうかとお誘いがあって、それであれば、参加者としてだけでなく、スタッフとして参加してみようかと思い、手を挙げてみました。

私は、本業では、iOS Developer ではないこともあり、それほど知り合いが多い訳でもないのでいい機会かなと思ったというのもありますし、汗を流すのもよいかなと。

当日は、配布物の準備や、会場設営のお手伝い、開場後は、主に受付で QRコードをひたすら読んだり、いろいろご案内させて頂いたりしました。行き届かないところがあって、いろいろご迷惑おかけした点もありましたが、楽しく活動できました。一緒に活動してくれた方々には感謝です。

ここ数年は、仕事でも英語の必要性が高くなってきているので英語学習を再開しているのですが、いろいろ思うことありますが、けっこう役立ちました。

セッション

スタッフしながら、セッションも聞いてました。興味をひかれたものをいくつか。

(1) 様々な場面でSwiftを使う/Yusuke Ito

Niwatakoさんの書き起こし niwatako.hatenablog.jp

Itoさん自身による記事 aial.shiroyagi.co.jp

私が一番興味をひかれたのは、これです。オープンソースで公開された Server Side Swift のお話。私、実は触ったことなくて試してみたいと思っていました。 特に、Raspberry Pi 上の i2c通信をどうするのか疑問に思っていた中で、このお話は非常に参考になりました。

あとは、質問でソフト中心のエンジニアが多いこともあって、Arduino と Raspberry Pi を混同されているなと思いました。 Arduinoは、1チップマイコンなのでOSという概念がないんですよね。OS がある Raspberry Pi の方がワンボードコンピューターだけど、OSを持っている点が違いますね。

After Party の時に、Itoさんと少しお話させて頂いて、電子回路のお話で盛り上がりました。オーディオを作るとか凄い方です。アナログ回路は、回路図だけで語れない部分があって難しいんですよね。自分も若干、知識を持ち合わせているのでとても話があいました。自分も、お話いただいた内容で何か製作できないか考えています。

(2) Client-Side Deep Learning/@shu233

堤さんによる補足記事 d.hatena.ne.jp

堤さんのセッション。Tensorflow で学習したモデルを iOS 上でもうごかせますよというお話でした。 ちょっとこれは、是非、作ってみたいと思いました。

(3) Swiftで堅牢なカラーシステムを構築する/Laura Ragone

Niwatakoさんの書き起こし niwatako.hatenablog.jp

自分もアプリを出しているなかで、カラーの管理は考えることが多かったです。特に、色覚の障害者に対する配慮は印象的でした。 日本の場合、配慮できていないケースが多いと思うので、文化の違いを感じる部分でした。

自分のアプリの中では、きちんとカラー管理できていないところは改善したいと思っていて、今後の課題に参考になりました。

(4) アプリを新次元に導く3DTouch

Niwatakoさんの書き起こし

niwatako.hatenablog.jp

3DTouchは、まだ対応機種も少ない、使いこなせる人も少ない、テスト手法が少ないということもあり、使い方のノウハウ共有は重要だと思いました。 今後、対応機種がどこまで増えるか分からないですが、一つの新しいインターフェースへのチャレンジも興味深かったです。

セッション全体を通して

自分は、iOS Developer が本業ではないこともあり、学習スピードが遅いことが悩みではあるのですが、もたもたしているうちに、どんどん進む技術の進展の速度には驚かされます。

基礎知識の不足、学習の必要性を実感しました。まずは、Swift の言語自体の知識を深めること、iOS周辺の知識をもっと深める必要性を実感しました。成果物ももっと増やしていきたいです。

あと、今回は応用例が多かった印象があります。明日から活用できることも多かったです。

ちゃんと全部復習しなければ...。

パーティ

スタッフだったこともあり、1日目の登壇者向けのパーティに参加させて頂いたり、アフターパーティにも参加させて頂いたりして、外国人の方々ともたくさん話しました。

日本人は、言葉がわからなくてもとても親切だと言ってくださる方が多くて嬉しかったです。

ハッカソン

devpost.com

Kaz Yoshikawa (@codelynx)さん、Yutaro Muta (@yutaro) さん、Artis Birzins(@artis)さん、Oleg Chernyshenko(@peyot)さん、Kohei Tabata (@nerd0geek1)さん、私という自分を除いては、レベルの高い方々の集まりでした。

以前から、顔見知りの Yoshikawaさん、Yutaroさん、Tabataさんのスキルの高さは前から当たり前のように知っていましたが、Oleg Chernyshenko(@peyot)さんは、Firebaseの話を聞いてすぐ理解して、ぱっと進めていくフットワークの軽さが凄くて、Artis Birzins(@artis)さんとは、資料作ったりとか、そういった部分でたくさん助けてもらいました。

自分の置かれている位置も分かってましたけど、もっと頑張ります。

今回の反省点と次回への抱負

(1) 理解不足が多かったです。Swiftをもっと自在に扱えるように、知識を深める。

(2) 英語をもっと話せるように、特に正確なリスニング、即答力が課題と思いました。

(3) 可能なら、来年もお手伝いします!

感想と余談

一番嬉しかったことは、「君はアフターパーティに来るのか」と話しかけてくれた外国人の方。「もちろん行きますよ」と答えたら、「またあとで会おう」と声をかけて頂いたことは、本当に嬉しかったです。 少し前まで、全然リスニングも満足にできなかった中で、少しでも理解できてちゃんと会話できたこともそう、参加者の方は意外に気さくに声かけてくれました。faselaneの開発者である Felix Krause さんもそうで、とても気さくで受付に現れて、バッジを頂いたり。

また、普段から、勉強会でお世話になっている人たちにたくさんに、ねぎらいの声かけていただいて、感謝しきりです。いつもありがとうございます。 一緒にボランティアとして活動した方々にも感謝です。あしでまといにならないようには頑張ったつもりです。また、一緒にやりましょう。

それと、受付一緒にやった、岸川さんの奥様。とても可愛らしく、ユニークな人でした。いろいろお世話になりました。ありがとうございました。

また、来年もお願いします!

niwatakoさんのリンクまとめ

niwatako.hatenablog.jp

fastlane勉強会 vol1

f:id:o_chicchi:20170222005810j:plain

fastlane勉強会 vol1

kohei_tabata さん主催 fastlane 勉強会に参加してきました。いつも通り、スーツにて(笑)

Fastlane とは、iOS や Andoroid のビルドや、リリース作業の軽減を図るためのツールです。Ruby で書かれています。

fastlane.connpass.com

挨拶

kohei_tabata さんから、挨拶。

f:id:o_chicchi:20170222005817j:plain

Fastlane について、以前、AKiba.swift でハンズオンを行ったが、その時の反響などを踏まえて、需要ありそうだなということで始めることにしたとのこと。 月1回の定期開催が目標。

会場説明

tamaki さんから、会場の説明と諸注意について。

会場は、冒頭の写真ロゴで有名な株式会社Origamiさん。お洒落なオフィスでした。ガラスで部屋を仕切るとか面白いですが、自社ソリューション中心だからできるのかなと、ちょっと羨ましく思いました。

https://about.origami.com/about.origami.com

最近は、決済ソリューションとしての Origami にとても興味があります。 タクシー会社の日本交通さんとのタッグは、これからの新しい流れができるのではないかと思っています。

今回の参加費の決済にも活用されました。コミュニティの決済に活用できたら便利かも。

https://itunes.apple.com/jp/app/origami-o-zhi-faniapuri/id622474053?mt=8&at=1010ln2

fastlaneとは?fastlane導入のメリット

  • 説明 kohei_tabata さん

説明はスライド通りです。 ローカルで、Description を作成してアップロードはいいかもです。 その方が、管理しやすいです。

fastlaneを導入してみた話

  • 説明 Koya Yagisawa さん

Akiba.swift のハンズオンを受けて、簡単で試して使えそうと判断したとのこと。 説明ついては、担当案件に限った話とのこと。

属人性を減らせるという点は興味ありますね。

証明書、iTunesConnect周辺に課題あり。納品形態によるところもあるという話は、解消できたら是非教えてもらいたいです。

参考。Crashlytics を知らなかったので。

dev.classmethod.jp

ハンズオン

用意してくださっていた以下の手順を元に作業。 以下のリポジトリを、git clone します。

github.com

前回のAKiba.swift のハンズオンでは、deliver が破損していたので、今回は、gem を用意したとのこと。ありがとうございました。

おおむね手順通りですが、私がハマったポイントだけ。

僕は、rbenv install 2.3.1 のステップで、以下のようなエラーが発生

dyld: lazy symbol binding failed: Symbol not found: _clock_gettime
  Referenced from: /private/var/folders/ns/17zh23xx225br0gn_7n0jl3h0000gn/T/ruby-build.20170221200724.74542/ruby-2.3.1/./miniruby (which was built for Mac OS X 10.12)
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _clock_gettime
  Referenced from: /private/var/folders/ns/17zh23xx225br0gn_7n0jl3h0000gn/T/ruby-build.20170221200724.74542/ruby-2.3.1/./miniruby (which was built for Mac OS X 10.12)
  Expected in: /usr/lib/libSystem.B.dylib

dyld: lazy symbol binding failed: Symbol not found: _clock_gettime
  Referenced from: /private/var/folders/ns/17zh23xx225br0gn_7n0jl3h0000gn/T/ruby-build.20170221200724.74542/ruby-2.3.1/./miniruby (which was built for Mac OS X 10.12)
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _clock_gettime
  Referenced from: /private/var/folders/ns/17zh23xx225br0gn_7n0jl3h0000gn/T/ruby-build.20170221200724.74542/ruby-2.3.1/./miniruby (which was built for Mac OS X 10.12)
  Expected in: /usr/lib/libSystem.B.dylib

make: *** [.rbconfig.time] Trace/BPT trap: 5
make: *** Waiting for unfinished jobs....
make: *** [encdb.h] Trace/BPT trap: 5

が発生したので、以下の記事を読んで、

stackoverflow.com

以下のように実行。

$ xcode-select --install

そして、rbenv install 2.3.1 を再実行して完了。

もう1点は、サンプルプロジェクトの Automatically manage signing の設定のチェックで、自分の Developer Account に設定にして、事前に作成した Adhoc の証明書を選択しましたが警告が消えずに悩みました。結局、Xcode に古い証明書が残っていたことが原因のようでした。

Xcode - Preferences を選んで、Account を選んで、右下のView Details を選択すると、以下の画面がでるので、以下のように整理しました。

f:id:o_chicchi:20170222011729j:plain

そうすると、警告は解消されました。 ということで、Adhoc用の証明書をセットして、

$ bundle exec fastlane gym --export_method "ad-hoc"

ipaができたか確認します。

$ ls *.ipa
fastlaneSample.ipa

ipa が作成されたことが確認できました。

fastlane のディレクトリの下に、fastlane/Fastfile が用意されているので、

DEPLOYGATE_API_TOKEN = ""
DEPLOYGATE_USER      = ""

の部分を、事前に作成した DeployGate(https://deploygate.com/)のアカウントにある自分のアカウント名称と、API_TOKEN で書き換えて保存。

$ bundle exec fastlane beta

DeployGate で、アプリができたことが確認できます。これは、ちょっとスゴイ。

f:id:o_chicchi:20170222012239j:plain

僕の場合は、自分のアプリをリリースする前に、ご協力頂いた人に事前レビューをお願いしているのですが、そのようなシーンで活用できそうです。

懇親会

f:id:o_chicchi:20170222005827j:plain

f:id:o_chicchi:20170222005832j:plain

いろいろな方とお話できました。先週末の私の Swiftビギナーズでの発表を聞いた方がいらして嬉しい限り。

あと、自分はまだまだ若いつもりでいるので、今まで通り頑張りますよ。

懇親会、いろいろ手配下さった Origami の方々に感謝。メンターを実施してくれた方々に感謝です。 いつもいつもお世話になってばかりの方々が多く、本当にありがとうございました。

try! Swift のイベントで、来日される Felix Krause氏に、今回作成された Tシャツ着てもらえたら嬉しいですね。 どういう結末になるか、楽しみにしています(笑)

参考

主催者の kohei_tabata さんによる振り返り。bento.jp は初めて知りました。

nerd0geek1.hatenablog.com

メンターのダンボー田中さんによるブログ

dev.classmethod.jp

iOS Creators' Meetup vol.3 に参加してきました

iOS Creators' Meetup vol.3

前回参加できなかったので、今回は参加。

oi-study.connpass.com

8分間でデザイン思考をわかった気になる

  • 発表者

    • 主催 すどう(@akatsuki174)さん
  • デザイン思考について

    • 今日は、技術的な内容が大半を占めたので、すこし技術寄りではない話を。
    • ゼロから1を生み出す試み
    • 生活者、ユーザー目線で考える
  • Step1:共感

    • cf.エスノグラフィー
  • Step2:問題定義

    • cf.KJ法
  • Step3:創造

    • 新結合
    • cf.ブレインストーミング
  • Step4: プロトタイプ

  • 具体的手法は調べてみましょう

iOSでおうちハックIoTのクライアントアプリ作ってみた

  • 発表者

    • 篠原さん(@shanonim)
    • Androidエンジニア
    • 来週から、Oisix に入社する予定
  • IoT

    • よく、IoTLT に登壇している。
  • おうちハックの課題

    • 電源、通知
  • バックエンド

    • IoT 向きの Milkcocoa というのがある。
    • Milkcocoa は、swiftのSDKがある
  • iOSのクライアントアプリ出来たら、また、LTします。

カスタムトランジションやジェスチャーを生かしたUIの実装ポイント

  • 発表者

    • 酒井さん(@fumiyasac)
  • GestureRecognizer の話

OK、理想のアーキテクチャは分かった。で、どこから手をつけんの?

  • 発表者

    • 高瀬さん(@takasek)
    • FiNCでお仕事してます
  • FiNCのアプリも大きくなりました

    • プログラム規模が大きくなると、ビルドも遅い
  • アプリのコードのメンテナンス性をよくすることも必要

    • 各層のフレームワーク化
    • ヘキサゴナルアーキテクチャ

Clean Architecture用の開発ツールを作った話

  • 発表者

    • 廣瀬さん(@hirose_yudai) 別名、Star乞食さん
  • Clean Architecture を利用する

    • 同じような記述をする箇所が多い
  • Kuri というライブラリを作った

Swift 4 Package Manager Roadmap ~ パンケーキを添えて ~

  • 発表者

    • はしや @jpmartha_jpさん
    • ookami で、PLAYER
    • try! Swift Tokyo 2017 の主催
    • パンケーキさん
  • Swift-evolution-announce

ゲストTalk. 安部昌乗さん 「アプリアップデート文の魂の込め方 ~グロースハッカーのポエムを添えて~」

  • Speaker
    • ゲストTalk. 安部昌乗さん
      • 株式会社ookami 取締役
        • オオカミとは、集団で狩をする動物たち。理由は後付け。代表がノリで会社名決めた
      • 共同創業者
      • Handball Japan
  • アプリアップデート文に魂の込め方が足りない

  • アプリは、削除されないアプリは使ってもらえるチャンスがある

    • それであれば、アップデート文でアピールできるチャンスがある。
  • いい感じのアップデート文

    • 5位 Smooz ブラウザ
    • 4位 Tumblr 最近はつまらない
    • 3位 Waaaaay!
    • 2位 ハヤえもん - 長い
    • 1位 Player! - 手前味噌
  • グロースが難しい

    • 競合が多い
    • グロースハッカーという言葉が広まったのが理由。埋没しやすい。
  • グロースさせるか

    • 正解がないよね
  • 岡崎慎司のようにスマートに泥臭く

  • グロースハック的な考え方は重要です

  • サービスの本質的な改善は必須。

会社紹介

  • ふかわさん

  • エンジニア募集中

懇親会

  • がやがや

  • 自分は本業ではないので、普通に楽しませてもらいました。

  • freee とかのアプリも

感想

  • 酒井さんの話は相変わらず役立つお話。

  • クリーンアーキテクチャとかあるけど、自分には、まだまだハードル高いかな。

  • アップデート文の改善は、今からでも取り組めるな。

  • いつも有益なお話をありがとうございます。

オブジェクト指向初心者が、Swiftでアプリを開発するまで

本記事について

Qiitaに掲載した以下の記事を、一部修正の上、こちらにも掲載しています。記事作成者自身による投稿です。

qiita.com

はじめに

Swiftアドベントカレンダー18日目を書きます。

昨日のTaji-tajiさんのような高度な話ではありません。 本記事には、技術要素はあまりありません。ポエムです。ゼロではないけど...。

Swift愛好会に参加するようになって、けっこうな時間が経ちますが、Qiitaに書いたことも無ければ、談義をしたこともないので、知らない人は多いのではないかと思います。なので、アドベントカレンダーの空きを利用して、自己紹介も兼ねて、最近のアプリ製作の紹介、合宿でやったことを書きます。

どんな奴

都内の中堅SI会社に勤務するSAPテクニカルコンサルタントという怪しい肩書きの持ち主です。 たまに開発もしますが、メインはインフラ寄りのエンジニアです。スキルの振れ幅大きいので、要は何でも屋とも言います。

経歴は、ハードウエアエンジニア、制御系SE、社内SE、ネットワークエンジニアを経て、現職です。その昔、NEC PC-8001 に出会い、PC-8801mk2SR に運命変えられました。今は、ハード製作といった下のレイヤーから、けっこう大きめなサーバの上に乗っかるアプリケーションまで、趣味や仕事で扱っています。

あと、資格コレクターなので、最近世間で有名な逃げ恥の平匡さんが持っているデータベーススペシャリストも保持してます。高度情報処理者資格もずいぶん集めました。

そのほか、昔、アマチュア無線でパケット通信やっていたり(MO-RBBSもやっていました)、パソコン通信(Nifty-Serve、PC-VAN)なんかもよくやっていました。なので、無線とか通信など、その辺も若干詳しいです。

経緯

Objective-C もやっていたんですが、なかなかリリースできるまでの経験まで至らず、Swift になっちゃったねということで、書籍を買い直しました。言わずもがな、世界一本ですね。諸般の事情で、2冊あります。

IMG_0009.jpg

この本が縁で、RainbowApps のプログラミングスクールにも行きまして、著者の高橋さんに教わり、そこで知りあった人たちの縁で、Swift愛好会といったコミュニティの勉強会に参加するようになりました。

スクール云々より、この出会いはとても大きかったです。

iPhoneアプリについて

その RainbowApp に行った中で、アプリを作りました。

[AppStore] Simoncats https://itunes.apple.com/jp/app/simoncats/id1078064315?mt=8

IMG_0008.jpg

SimonCats と言います。サイモンゲーム)というのがあるのですが、その昔、PC-8001上の N-BASIC で作って楽しくてハマったので、なんとなく移植してみようと。

移植のサンプルプログラムを作る過程で、親友がイラストを描いてくれまして、それを組み込んで、少しルールを変えてリリースしました。ほとんど、この絵に支えられていると言ってもいいですね。友人に感謝です。

ちなみに、何度かバージョンアップしているので、リリースしたときとは、もう、ずいぶん違っています。

技術要素

このアプリのウリですが、

  • 可愛らしいイラスト
  • エクステンションを使って枠線付きボタンを StoryBoard で描く
  • 多言語対応(英語、日本語)
  • Admobの広告処理をSwiftで記述
  • サウンド処理

再活用できそうなTipsは、別記事にまとめました。 こちらを参照してください。

[iOS][Swift]iOSでボタンやラベルの枠線を Storyboard で簡単に描く方法 http://qiita.com/o_chicchi/items/c4469e956c2118226a2d

[iOS][Swift]Admobの広告をSwiftで表示する http://qiita.com/o_chicchi/items/da8ebfd1d4536f29398b

合宿

アドベントカレンダーにもありますが、今年、プログラミング合宿に行きたい思っていたので、Swift愛好会の合宿に参加できて、しかも、土善旅館とかテンション上がりました。事務局をやってくれる方々に感謝です。

その中で作業していたのは、Swift3.0 への移行でした。

問題になっていたのは、Admob の広告のライブラリで、もともと、Pods を使わずにプロジェクトを作成していたので、Admob のライブラリを削除した上で、Pods 使用に切り替えて、最新版を再導入したんですが、Xcode のリンク時のエラーを解消できず、プロジェクトを作り直しました。StoryBoardが壊れたりしたのを直し、細かい辻褄があわないところを修正して、リンクが通ることを確認し、Swift3.0へのアップデートは完了しました。本来は、コードの置き換え中心になるはずなんですが、すごく苦労しました。

あと、AVPlayerLayer あたりが使い方が変わっていて、ゲームのチュートリアルの処理を大幅に修正しました。

いまさら参考: Swift3でAVplayerLayerをUIViewのレイヤーとする時 http://qiita.com/noppefoxwolf/items/8c503923b3da23484f30

リリースに向けて

仕事もそれなりに忙しく、いろいろな活動をしている影響で、進捗は芳しくないのですが、書きかけの GameCenter の処理を頑張って組み込んで、リリースに向けた準備をしていきたいと思います。 次期バージョンでは、イラストの追加も予定していまして、既に素材はあるので、加工して組み込みたいと思います。

課題

いくつか課題があります。

  • ゲームのメインの処理のプログラムコードの書き方が決していいとは言えないです。状態管理を変数で管理していますが、Swiftには、enum といういい命令があるのですが、活用できてないです。

  • 全体的なコード量が多くなっていて、冗長なところも目立つようになってきました。昔、記述したところを見直して、よりスマートにきれいにしたいです。

そもそもは、力業で、ごりごり書いて、リリース優先した遺産ですね。

まとめ

Swift愛好会は、普段の仕事の中でコードを書かない私にとって、自分のモチベーションを保つ上で非常に重要な会です。今後も続けて下さい。@es_kumagaiさんのSwiftチャチャチャのような高度な談義や、いろいろな人のコードの書き方を知って、頑張ってついてこう、頑張ろうと思っています。

そのほか、私自身は、iPhoneのアプリ開発はもちろんのこと、AWS、Bluemix、IoT周辺(RaspberryPi、Arudinoなど)でも遊んでいるので、興味ある方は是非一緒にやりましょう。

それと、初心者の皆さんへ、アプリのリリースはしてみるものです。世界が変わります。ホントに。

明日は、かの有名な dotstudioのびすけさんの投稿です。MashupAward2016IoTLT の優勝おめでとうございます。

最後まで読んでいただきありがとうございました。

以上

SimonCatsをリリースしました

こんなアプリを作りました

https://itunes.apple.com/jp/app/saimoncats/id1078064315?pt=613349&ct=hatena&mt=8&uo=4&at=1010ln2&ct=hatena

アプリを作るまでの経緯

ここ数年、Macを購入し少しずつ学習してきたんですが、昨年、どんな理由があっても、1本、2016年3月までにリリースするという目標を立てて、極秘裏(笑)にプロジェクトを進めてきました。 いろいろな経緯があり、たくさんの方にご支援頂き、無事リリースに至りました。 仕事では、過去にもアプリケーションを作っていない訳ではないですが、公開するアプリケーションは、以前、NEC PC-9801用に作成したものが、雑誌に載って以来なので、10数年ぶりです。

Swift2.1との格闘

今回は、Swiftを利用してコーディングを行っています。オブジェクト指向プログラミングにあまり縁がなく、真剣にやってこなかったので、ツケがいろいろとあり、理解に苦しみました。 でも、なんとか理解が進み、ほどほどの難易度であれば作れるように。 最近は、ヘルプとかドキュメントを見ても理解はできるようになったので、ここからはいかに使うかですね。

作成した動機

なんとなくというのもありますが、一番は、プログラムを書きたかったというのが大きいです。 仕事は、SE とか、コンサルタントとかいう肩書きも一応持ってますし、情報処理技術者試験もずいぶん取りましたけど、それだけでは、何か物足りないかなと。 会社が守ってくれる時代は、既に終わっていると思っているので、攻めようというのもあります。

あとは、ネタになりますよね。こんなことも出来る人なんだと。

リリースはしたものの

リリースしてみましたが、きちんとゲームはできるので致命的なものは少ないものの、問題は多発しております。 最近、英語モードへの翻訳を進めているのですが、その過程で、Saimon ではなく、Simon が正しいことが判明とか、もうダメダメですね(笑) これは、影響範囲が大きくて苦しんでますが、絶対直します。

今後の対応

指摘いただいている点は、今後も Issue に挙げて修正していきます。 一応予定としては、ユニバーサルアプリ化と、繰り返し遊んでくれている人へのインセンティブ機能を搭載しようと思っています。 また、新作もリリースできるように頑張ります。

もし面白かったら

ダウンロードしてみて楽しかったら、是非、AppStoreへのレビュー投稿をお願いします。また、バグなど見つけたら、公式Twitterか、ブログにでもコメントください。 できるだけ修正対応します。また、まわりに勧めてくれたら、とても嬉しいです。 遊び方ガイドもここにも記載したので、是非読んでください。

Copyright © 2002-2015 まりぱらおーぐ All Rights Reserved.