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に登録出来ました。

今年の抱負

新年明けましておめでとうございます。 ドラです。 明けましたね。去年もたくさんの出来事がありました。 反省するする点が多く、今年に生かしていきたいですね。 というわけで新年一発めのブログは今年の抱負でいこうと思います。 今年は去年の反省も生かし“堅実”というテーマでいこうと思います。 昨年は開発を通してどうしてもトリッキーなことを狙ってしまい、基本的なことを疎かにしてしまっていたので今年は、何事も硬く確実な開発に注力していきたいと思います。
さらに去年以上に探究心を忘れずに情報のキャッチアップやアウトプットに力を入れていきたいとも思っています。 個人的な目標でもあるのですが、オープンソースの活動とかも着手していきたい年なので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回を目標にしてセミナー、勉強会に積極的に参加していきたいです。 この他にも仕事の目標も決めているのでまた次回に書きます。 というわけでざっくり今年の目標を書いたわけですが、なによりも重視するのは“堅実”です。 これを忘れずに今年を過ごせる頑張っていきたいと思います。

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

前回は登録はできました。 お気に入り機能は簡単に登録と削除ができなければいけないですね。 今度は削除機能を作ってみます!! (前回のものから少々変わっている部分があるかもしれないですが悪しからず。。。) まずは、表示したデータがお気に入りに登録されているか判定します。 今回は一意のidで管理しているので、 そのidがRealmに保存されているか確認します。 今回はRealmを利用する準備の部分は省略します。 (前回の記事を見てもらえればわかると思います。) やり方はidで検索して(それぞれのidはサーバー等から取得済み) query.size == 0 になった時は該当するデータがなく、elseになった時はお気に入りに登録されているということです!! では、お気に入りに登録されていて、お気に入りから削除する場合は このようにおこなってデータを削除します。 削除の場合はTramsaction内で処理をする必要があります!! だいぶ簡単ですね!! 登録がされていない場合は、前回の記事を参考に登録するという流れです!! 最後に realm.close()をするのをお忘れずに!! (僕は終了させるのを忘れてエラー続出でした(汗)) 今度はお気に入りをListViewで表示させてみます!!

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

今回はAndroidアプリでReamlを利用してデータの管理をしてみようと思います。 実装したい機能は「お気に入り機能」 SQLiteは触ったことあったけど、 NoSQLであるReamlを使うのには勉強時間がかかるのではないかと心配・・・ しかし、日本語のドキュメントがありとても親切↓ https://realm.io/jp/docs/java/latest/ 更に、GitHubで「Android Realm」と検索すれば結構簡単なコードがでてくるのでこれらを拝見しながら いざ、実装!! RealmはNoSQLなのでキーと値のペアでデータを格納していきます。 最初にキーとなるModelなるクラスを作ります。 こんな感じで作成します。 重要なのが です。 RealmのModelとして宣言して、あとはカプセル化してゲッター・セッターを書くだけ!! 続いては、データをRealmに格納する処理を書いていきましょう!! 格納はとても簡単にできました!! 次は格納したデータを取得して表示してみたいと思います!!

AndroidStudioのバージョンをあげたらファイルをcompileできなくなった

Androidアプリを開発しているのですが、 最近、AndroidStudioのバージョンを上げたらビルド時にエラーがでてしまい、 1日つぶしてしまいました。 なので、解決方法を記載します。 (バージョンは1.2から1.4へのアップデートです。) エラーは下記のようなものでした。 解決方法は実に簡単で、 build.gradleのdefaultConfig{}に の1文を加えるだけです。 こんなことで1日悩むなんて・・・

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

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