グロースハックする~ダフえもん~

iOSアプリのキーボードにボタンを追加する – Swift学習記録

久しぶりにバイオハザードをやってぶっ飛びまくる休日を楽しんだドラです。
(リベレーションズ2買ったまま放置だったからね。しかし本当に懐かしいキャラでプレイできるのは感激ですよ笑。バリーなんか娘がいるんだもんね。いいパパって感じだよね。) 今回はSwiftの勉強し始めたころに、もしかしてと思って試したら予想通りに実装できたアレについて書いていきます。 よくキーボードの上に出てくる”完了”ボタン
意外とこれも簡単なので書いていきます。
環境
OSX Yosemite 10.10.5
Swift2.1
Xcode7.2
あとはUITextViewのDelegateをselfにしてやればいい これでOK! これを前回のおしゃべりアプリに実装してみると いい感じ! ここで気がつく、、、 もしかして、、、
これって、、 完了ボタンの代わりに画像をセットしてみる、、、
もうお気づきの方も多いだろう メッセージアプリなんかでよく見かけるスタンプはこうやってできてるんだね! なるほどね! 初めてできたときは感動したよね笑
dra-a_round

Swift2でAlamofire+SwiftyJsonをつかってみる – Swift学習記録

明日は思い切って髪型を変えてみようと企んでいるドラです。 今日は土曜日なのですこし面白いことをします!! 以前GoogleAppScriptを使った際に紹介したdocomoのおもしろAPIを 前々回Cocoapodsで導入しっぱなしだったAlamofireをSwiftyJsonと組み合わせて叩いてみたいとおもいます!

ライブラリ

Alamofire
SwiftyJson

docomoAPI

雑談対話 ※詳細は過去記事参考 早速Podfileを設定していく これでpod install

StroyBoard作成

今回は簡単に + UIImageView(キャラクターの画像)
+ textLabel(キャラクター吹き出し) + UIButton (送信) + UITextView(コメント) を適当に配置しました。
これらをViewControllerと適当に紐付けします。

ViewController作成

Alamofire.requestの中身を見てみると 第1引数に送信方法
第2引数にリクエストuri 第3引数は任意にパラメータ
第4,5とエンコーディングとヘッダー情報となっている 今回はJson形式でのやりとりをしているためparserとしてSwiftryJsonを使っている これも直感的で使いやすい(見ての通り) サンプルをgithubにあげておくので遊んでみてください!
スクリーンショット 2016-01-09 5.07.33

スマホアプリには欠かせないアレを作る – Swift学習記録

年始に水道が止まってたダフです。 昨日ようやくiOSアプリのリリース申請をしました。 appleさんお手柔らかにお願いします。 前回Cocoapodsの導入を紹介したので今回はスマホアプリではよくみるアレを実装してみたいと思います。 今回作成したアプリで使っているこのスワイプでViewが入れ替わる、よくメニューなんかで使うあれです。 ただviewを入れ替えるだけなんですが、これを一から作ろうとするとけっこう大変なんです、、、 そこで今回もライブラリさんに助けてもらいました! 今回使ったのは sascha/DrawerController · GitHub お世話になりました。m(。。)m
環境
OSX Yosemite 10.10.5
Swift2.1
Xcode7.2

導入

前回と同じようにPodfileに を追加した するだけ

ViewControllerの作成

まずはメインとなるViewController作成します。 同様にメニュー画面も作っておきます。

Storybord作成

storybordからNavigationControllerを配置し、先ほど作ったViewControllerと紐付けし任意のStorybord idをつけます。 メニュー画面も同様です。

AppDelegateの設定

最後にAppDelegate.swiftクラスをいじります。 ここで最初にインストールしたDrawerControllerの出番です。 これででOK!! 早速実行してみると いい感じ! というわけで意外とライブラリを使ってしまうと意外と簡単に実装出来てしまうわけなんで笑
(デフォルトでないのはおかしいけどな…)
alamofire

Swift学習記録 Cocoapodsの導入 ライブラリ編

ドラです。今日ようやくiOSアプリの申請を終えました。 前回にも増してSwiftちゃんが大好きになった今日この頃笑 (実は会社で流す音楽の選曲をしているのだけ、Swiftを使ってておもしろい発見があると必ず、テイラー・スウィフトのある曲を流す。あんまり有名じゃないけど分かる人にはわかるはずニヤニヤ それに気づく人が出てくるのはあと3年後だろ笑) こころの声が長くなってしまったようで、、、 さて今日は何を書くかというとみんなみんな大好きSwiftちゃんの心強いお友達 Cocoapodsちゃん!!

Cocoapodsとは?

豊富で魅力的なiOSライブラリを毎回githubからダウンロードして、ソースをぶち込むのは正直ダルい、、、 そんな悩みを一気に解決してくれるのがこのCocoapods そうCocoaPodsとはiOSのライブラリ管理ツールなのです!
環境
OSX Yosemite 10.10.5
Swift2.1
Xcode7.2

Install

Podfile作成

無事にcocoapodsをインストールすることができたら、ライブラリを導入したいディレクトリにPodfileを作成してあげます。 今回は僕もよくお世話になっている通信ライブラリのAlamofireを導入していきましょう。 作成したpodfileに以下を書いていきます。 ※SwiftのバーションによってAlamofireのバージョンも指定してあげる必要があるようです。 これでなにもエラーがでなければひとまずインストールはできたことになります。

プロジェクトを開く

早速プロジェクトを開いて確認したいところですが、おや見慣れないものが、、、 そうCocoapods導入後はこの白アイコンのプロジェクト実行する必要があるのです。 (とはいえ大したことはないですが、、、)

導入

あとは導入したいクラスにimportして上げればいいだけ! 簡単ですね!ライブラリの使い方に関してはそれぞれのREADME.mdとDEMOプロジェクトなんかを参考にすればだいたい分かるよ〜 参考)) iOS Cookies
iOSの開発でお気に入りのライブラリN選

Swift学習記録 文字数制限のtextFeldを作る textField編

ドラです。抱負書いといてしょっぱなからサボる、、、 良くないですね、、、 絶賛iOSアプリを開発中なのでSwift関連もちょくちょく載せていきます。

環境

Swift2.1 Xcode7.2

textFieldで文字数制限

よくある文字数制限のtextFeildを作ってみたいと思います。 続きを読む

今年の抱負

新年明けましておめでとうございます。 ドラです。 明けましたね。去年もたくさんの出来事がありました。 反省するする点が多く、今年に生かしていきたいですね。 というわけで新年一発めのブログは今年の抱負でいこうと思います。 今年は去年の反省も生かし“堅実”というテーマでいこうと思います。 昨年は開発を通してどうしてもトリッキーなことを狙ってしまい、基本的なことを疎かにしてしまっていたので今年は、何事も硬く確実な開発に注力していきたいと思います。
さらに去年以上に探究心を忘れずに情報のキャッチアップやアウトプットに力を入れていきたいとも思っています。 個人的な目標でもあるのですが、オープンソースの活動とかも着手していきたい年なのでgithubの活用も積極的にしていこうと思っています。 そこで具体的にはどういったことをやっていくかというと

アウトプット

・ブログ更新(2日に1回) ・Qiita投稿(2週に1回) ・github活用(随時) ・英会話

インプット

・php習得 ・様々なツールの検証 ・おためしjsフレームワーク(月に1つ) ・英語(1日15分)

開発

・iOSアプリのリリース(1本) ・ブログのリニューアル

その他

・LT,登壇(4回) アウトプッとは言わずもがなですよね ブログは2日に1回で今年は180記事以上投稿することになり、Qiitaは24tip投稿することになります。 テーマはそのときによって変わると思いますが、githubの活動でSwiftがメインになってくると思うので、iOS関連が多くなると思います。他にも仕事ではJavaがメインになってくるのでJavaやplay,scalaなんかが多くなってくるかと 英会話はレアジョブを契約してもらっているので、月に8回 今年は基本的な日常会話はスラスラできるようにがんばります! インプットはphp7が最近出たのをきっかけに少し興味が湧いたので開発のブログリニューアルにもあるようにWordpressを中心に1年を通して学んでいければと思います。 ツールの検証は今後大きくなるチームのことを考えると共同開発に欠かせないのが様々なツール そういった検証を日々インプットしてブログなんかに書いていければと思います。当分はCIについてのインプットになるかな おためしjsフレームワーク、、、 これは秘密です笑 英語のインプットは昨年読んだこちらの書籍で動機付けができたので方法論はこれを参考に今後改善しながら、学んでいきます。 3月にTOEICを受ける予定なので、目標点数を学生時代に取った570点に設定して毎日15分だけ決めて学習していこうと思います. 開発では好きなアプリを作ってリリースしていいらいしいので一年を通して一本企画してリリースできればと思います。 あと昨年2回ほど登壇する機会があったので今年はその倍の4回を目標にしてセミナー、勉強会に積極的に参加していきたいです。 この他にも仕事の目標も決めているのでまた次回に書きます。 というわけでざっくり今年の目標を書いたわけですが、なによりも重視するのは“堅実”です。 これを忘れずに今年を過ごせる頑張っていきたいと思います。

Google Apps ScriptとdocomoAPIで遊んでみた

Google Apps ScriptとDocomoAPIで遊んでみた どら(マコト)です。 最近はマーケティング続きであんまりコードを書けてなかったのでちょっとちょっと遊んでみた。

雑談対話API

以前勉強会でこんな面白いAPIを紹介してもらったのでGASで叩いてみた 雑談対話API こんな感じで適当に会話してくれる リクエストはこんな感じ これをもとにGASでちょっとした進捗管理くんを作ってみた 後はonOpen()にしてあるのでシートを開く度に進捗を聞いてくる進捗くんの完成!

Java学習記録~コレクション②:Iterator~

ドラ(マコト)です。 ArrayListでget()メソッドを使わなくてもListから値を取ってくることができる そのためにはイテレータというものを使う List2.java 結果 iterator()メソッドの
hasNext()は次の要素を調査して、カラでなければtrueを返す
next()はその内容を返す
つまりいちいちfor文でローカル変数を宣言してやらなくてもいいということ!

Java学習記録~コレクション:ArrayList~

ドラ(マコト)です。 これまでまとまった値を処理する場合、配列を使ってた 配列にはString型やデータ型は格納できるが、インスタンスを格納することできないという弱点もある そんな弱点を解決するのが、コレクション!! コレクションは逆に基本データ型を格納する場合はラッパークラス(int型であればIntegerクラス)を使わなければならないが、配列ができなっかったインスタンスを格納することができる コレクションは大きく分けて3つ * List * Set * map

List

ArrayList

使い方は簡単♫ 例でこれを使って色々試してみる 結果 ということで一旦ここまで

Java8の日付APIを使ってみる

ドラ(マコト)です. 今までDateクラスとか日付を扱うクラスではエポックを利用してミリ単位で日付を表現してた。 それ自体にそこまで不満は感じていなかっけど、SimpeDateFormatクラスCalendarクラスを用いる際、月 + 1 を考えないといけなかった。それほど大したことではないかもしれないけど、直感的でないしなんかめんどい。 この方法がデファクスタンダードかもしれないけど、せっかっく Java8から使えるようになったTimeAIPがあるのでそちらを積極的に使って、覚えていこうと思う。

Java.timeパッケージの代表的なクラス

  • Instant
  • ZoneDateTime
  • LocalDateTime
  • Duration
  • Period
Instantクラス Dateクラスのようなものだけどナノ単位になった ZoneDateTimeクラス タイムゾーンを指定し、それを基準にした日付クラス 結果 LocalDateTimeクラス 曖昧な瞬間を表したい時がある タイムゾーンの指定なしに単に”12月25日はクリスマスだね、、、”みたいなものを表現したい場合LocalDateTimeを使う 結果