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

OAuthについてもう一度理解してみる

久しぶりに聴くアジカンは寒い夜に滲みますね。ドラです。 この次のプロジェクトで各SNSのOAuthを使ったログイン機能を実装することになりそうなので今一度勉強しなおしてみます。 すごくざっくりと作ってみました笑
これまた流れをざっくり説明すると 1. ユーザーはあるサービス(クライアント)の認証を得るためにFBトークンの発行を要求します。 2. FBはそのユーザを確認しトークンを発行します. 3. ユーザはそのトークンをもとにクライアントにリクエストを送ります。
4. クライアントはFBに発行されたトークンが正しいかどうかの確認を行います。 5. トークンが正しければクライアントから改めてトークンを発行してもらい、サービスを利用することができるようになります。 すごくざっくりですが、こんな感じでしょう!笑 というわけで次回以降は実際に簡単なプログラムを書いてみたいと思います、
グロースハックする~ダフえもん~

改めてViewControllerの切り替えを考える

攻殻機動隊 笑い男編がコミック化されていたことに感激しているドラです。
(早速3巻まで購入笑 攻殻機動隊TVアニメシリーズでは一番好きな話なんですよね。超ウィザード級ハッカーなんて言われてみたいですね。笑 今年の秋に最終巻が出るみたいです。) 今回のアプリ開発でview切替時のトリガーについて改めて確認できたので、まとめます。
  1. viewDidAppear: インスタンス化された直後に呼ばれる
  2. viewWillAppear:画面が表示される直前
  3. viewDidAppear:画面が表示された直後
  4. viewWillDisappear:画面が消える直前
  5. viewDidDisappear:画面が消えた直後
前々回スマホアプリには欠かせないアレを作る – Swift学習記録の例に追加して試してみたいと思います。

Storyboard

ViewController

MainViewController
SecondViewController
leftVC

実行結果

これで実行結果を見てみましょう. ここで注意したいのはLeftVCは別ストーリーボードであるということ。この辺がどう絡んでくるのか楽しみですね笑
MainViewController起動時
MainViewController→SecondViewControllerのとき

SecondViewController→MainViewControllerへ戻るとき

MainViewController→LeftVCへ
LeftVC→MainViewControllerへ戻る
MainViewController、SecondViewControllerそれぞれの動きは予想通りでした。 しかしやはりLeftVCへの切り替わり時はMainViewControllerのトリガーは呼ばれません。
これはなぜなのでしょうね。。。
この謎はドロワーの中身を調べてみるしかないでしょう!
ということで後半へ続く!
identity_logo

AndroidでRealmを使ってみた〜お気に入り機能の実装(其の四)〜

前回の続きです。 前回はRealmに登録されているデータを全て抽出しました。 今回は、条件を絞り込んで表示してみたいと思います。 といっても、とても簡単で、 データを全て抽出していた下記のコードを少し書き換えるだけです。

登録データ

仮に下記の表にあるようなデータが入っているとした時に条件を絞り込んで表示してみます。
id(int)name(String)
10佐藤
20高橋
30坂本
40藤原

条件1)idが15以上のデータを表示

条件2)nameが高橋か藤原のデータを表示

とても簡単に条件を絞り込めましたね。 他にも色々な条件を指定できるので、こちらで確認してみてください!! では、次回はデータを並び替えをおこないます。
グロースハックする~ダフえもん~

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

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

AndroidでRealmを使ってみた〜お気に入り機能の実装(其の三)〜

前回の投稿から少し間があいてしまいましたが、 本日は、AndroidでRealmを使ってお気に入りに登録したデータをListViewで表示してみたいと思います。 (ListViewの使い方はListView の基本的な使い方 – Android 開発入門を参考にしてください) お気に入りはソートの機能も実装してみたいのですが、 ソート機能はまたの機会にして、 今回は全件表示するだけにとどめようと思います。

お気に入り表示までの流れ

  1. Realmを利用する準備をする
  2. Realmからデータを全件抽出をする
  3. ListViewの1つ1つの項目にデータを設定していく
  4. データが設定された1つ1つの項目をListViewとして表示をする
となります。

1.Realmを利用する準備をする

※FavoriteModelはAndroidでRealmを使ってみた〜お気に入り機能の実装(其の一)〜を参考に別途クラスを準備してください!! これで準備は完了です。

2.Realmからデータを全件抽出をする

全件抽出はとても簡単で、抽出する条件は色々と変更出来るので、 その辺りは次回以降に記載します。

3.ListViewの1つ1つの項目にデータを設定していく

抽出したデータのサイズだけfor文で回してArrayListに格納していきます。

4.データが設定された1つ1つの項目をListViewとして表示をする

ArrayListをListViewに設定すればRealmの全件のデータがListView形式で表示されます。 次回は、全件を表示するのではなく抽出するデータを絞り込みたいと思います。
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を作ってみたいと思います。 続きを読む

MySQLにCSVファイルを用いてデータを登録してみよう!!

あけましておめでとうございます。 今年はより更新頻度を上げて、閲覧してくださる方の為になるようなことを簡潔に書いていければと思います!! 今回は、データをデータベースに登録する上で、より効率化を図るべく csvファイルを用いて登録していこうと思ったので、 データの登録までをつまづいた部分を含めて書いていきます。 最初はローカルのMySQLに登録をしてみて、 その後にAWSのEC2内にあるMySQLに登録してみる といった流れでテストしてみました。

MySQLのテーブル構成

まずはテーブル構成を簡単に記載します。
カラム名データ型オプション
idint(11)primary key , auto_incremet
namevarchar(255)
addressvarchar(255)
entry_timetimestampdefault current_timestamp

CSVファイル

上記のデータベースに登録するためには次のようなCSVファイルを作成します。 最初の「,」の前と、最後の「,」の後にはそれぞれ idとentry_timeが自動的にデータベースに登録されるように空白にしております。

SQL文を用いてCSVデータをMySQLに登録

それではSQL文でCSVファイルのデータを登録してみます。 ローカルでCSVファイルを登録しようとすると といったエラーが出てしまいました。 (このエラーはidだけではなく、entry_timeにも該当します。) 原因は、 空白の文字はint型とtimestamp型には登録できないようです。 また、NULLも入りません。。。 しょうがないので、対応策としてSQL文の一番後ろに登録するカラムを記載して、CSVファイルの記載の仕方も変えました。 カラム数が多くなると大変になるという欠点はありますが、データの登録はできたのでサーバーでもテストしてみます。 すると、まずは といったエラー ローカルとサーバーではSQL文が異なるらしい。。。 これでなんとかうまく行きました!! 一応、CSVファイルに「,」を付けた状態でデータ登録してみると できた!! MySQLのバージョンの違いなのでしょうか?? ローカル:5.6.27 サーバー:5.5.40 うーん、サーバーの方がバージョン古い。 (すみません。詳しい原因はわかりませんでした。)

まとめ

結果として、下記でサーバーのMySQLに登録出来ました。