icon512@x1

iOS版 パウダールームマップ ついにリリース!

ドラ(マコト)です。
今朝ようやくiOS処女作がリリースされました。 思い返せば1ヶ月前。。。
我が子を保育園にあずけるがごとく、appStoreに申請し、いろいろな理由で受け取れないと言われ続けた10月
僕「どうかよしになにお願いします」 appleさん「説明が足りひんよ。それじゃ受け取れません。」
appleさん「使い方がわからんから、動画送れ」
appleさん「全然バックグラウンド関係ねぇーじゃねぇか!バックグラウンドモード切って出なおして来い」 そして計三回のリジェクトをくらい今日ついに “出してええよ♫” ありがとうございます!
早速勉強会でお世話になった人や個人的に相談に乗ってもらった人にリリース報告をして回りました。
そのフィードをみて早速ダウンロードしてくれた人もいて、色々なコメントをたくさんいただきました。
本当に我が子を保育園に送り出したかのような嬉しい1日でした。
というわけで以下からiOSユーザーの方はご利用いただけます。 パウダールームマップ

Go言語学習1日目 ~開発環境設定~

本日から少しずつGo言語の勉強をしてこうと思います!! 目標はGo言語とJavaでAndroidアプリを作ってリリースすることです!!

開発環境設定

まずは、開発環境設定ですね!! PCとGo言語のバージョンは以下の通り MacOSX 10.9.5 Go Version 1.5.1 とりあえず、vimでやっていく方法とgoclipseを使うやり方のどちらかにしようかと思ったので、 とりあえず、どっちも試してみたいと思います。 (現在、goclipseインストール中…) ということで、まずはvimを使っていこうと思うので、 パッケージをインストールします。 よしっ、簡単にインストールできた!! 早速、適当なところにディレクトリを作成して、 お決まりの「Hello World!」を表示させてみよう!! 拡張子は.goでファイルを作成します。 そして、コードを書きます。 よしっ!! で、コンパイル実行!! …… … あれっ??表示されない エラー?? 3行目がエラーなのでしょうか。 試しに ‘fmt’ → ”fmt” と変更。 そして、再度実行!! 出ました!! シングルクォーテーションではエラーになるみたい!! Go言語はルールが厳しいとは聞いていたが、予想以上!! こんな簡単な表示でも、やっぱり最初に書いたコードが出力されるのはうれしいですね!! goclipseは未だにインストール中なので、 goclipseの設定と利用はまた後日にします。

Java学習記録~復習:継承~

ドラ(マコト)です。 先日のSwift勉強会の熱が冷めやらんなか、Javaもやらないとと思いやってとるわけですよw オブジェクト思考でも苦手に感じる人も多い継承、、、 でも時間が解決したのか経験なのかそこまで突っ込んだ内容はやっていないけど、意外と継承はできるw ただただ親クラスをお元に新しいクラスを定義して、機能を加えたり上書きしてやればいいだけ こんなふうに CatTypeRobot SuperCatTypeRobot Main.java 海外版ドラえもんの出来上がり!www でも例えばDocTypeRobotの要素も取り入れたいなと思って をCatTypeRobotと同時に継承することはできない。一般的にJavaでは多重継承が禁止されている。

オーバーライド

ただただ継承して機能を追加するだけではなく、既にある機能を上書きすることもできる.それがオーバーライド SuperCatTypeRobot.java Main.java 実行結果 Stringクラスなどfinal宣言されているクラスはオーバーライドができないようになっている
PB210250

Swift勉強会で”Swift知識ゼロから3週間で少し凝った地図アプリを作った話”をした話

pic1 ドラ(マコト)です。 11月21日土曜日Swiftビギナーズ勉強会 第11回に参加してきました。 そこでこの1ヶ月かけて作ったiOSアプリについて簡単な発表をしてきました。

発表してみて

初めての参加でかつ初めてのセッション、、、
そんな状態の僕でも暖かく迎え入れてくれて、ものすごく発表しやすかった♫
今回発表した内容はこれからswiftを学ぶ人にとって僕自身がSwiftを学んだ経験を少しでも共有したくて、感想などをまとめたものです。
技術的な内容は少なかったにも関わらず、発表後色々な方々にアドバイスやコメントを頂き、発表できてよかったと心から思える会でした。 pict2

セッション後はみんなでもくもく会!

そこでは今回詰った内容を改めてベテランのSwifetr(swiftエンジニアを勝手に命名w)の方々に相談できて、これまた色々学べる機会になりました。
一番びっくりしたのは、ライブラリの導入方法を教えてほしいとか、githubにコードを共有してほしいwとか、教えられる側で参加したつもりがもくもく会の半分は教える側に回っていたことw
これはほんとにびっくりー
でも僕自身まだまだ勉強段階で期待に答えられるような回答ができたかわからないけど、今回の経験がかなり次の挑戦へ勇気づけてくれたように思います。 githubについては近日中にちょっとしたものをあげようと今まとめてるw 本当にいろいろな出会いがあって素晴らしい会でした!!
また次回も参加したい!そして何かしらの発表もしたい!

Swiftビギナーズ勉強会 第12回

pic3 pic4

サーブレットとJSPの基本に立ち返ってみる

Webアプリケーションを作ってはみたのものも基礎がまだまだ足りないということで、 書籍で学習をしながら、作り終えたアプリの改修をしていこうと思います。 今回利用させていただいた書籍がこちらです。 基本的なところからとてもわかりやすく書いてあり、とても勉強になりました。

フィルタ

フィルタとは、複数のサーブレットで同じ処理を行う際に、 そのサーブレットクラスをリクエストした時などに実行されるものだそう。 先ほど、紹介した書籍にも書いてありましたが例を示します。 サーブレットを使うときは大抵JSPから値を取得してくるという処理が入ってきます。 といった具合ですね。 その時に、サーブレットに文字コードを設定していないと、文字化けを起こしてしまいます。 ですので、 このように、文字コードを設定してあげる必要があります。 それを必要なサーブレットに書いていくのは手間ですし、書き忘れてしまう可能性があります。 そこで、利用されるのがフィルタクラスです。 文字コードを全てのサーブレットに適用させるサンプルを書きます。 これで、わざわざ全てのサーブレットに文字コードを設定する一文を書かずに済みます。

アクションタグ

続いてはJSPのアクションタグについてです。 アクションタグとは、Javaのコードを呼び出せるタグです。 こちらも書籍に書かれていることなのですが、 Webアプリを作るときは、ヘッダーやフッターが必要になってくると思いますが、 それらをわざわざJSPの一つ一つのページに書かないで、 ヘッダー用のJSPとフッター用のJSPをそれぞれ一つ作ってそれをアクションタグを用いて、 他のJSPに埋め込むというものです。 WordPressをやっている方なら同じようなやり方をしているでしょうが、 僕たちが作ったWebアプリでは一つ一つ同じものをコピペしていました。 それではこれもサンプルを!! まずは、ヘッダーのJSPを作ります。 同じようにフッターのJSPも作成します。(割愛します) そしてそれらをそれぞれのJSPに埋め込みます。 このようにすることによって、それぞれのJPSのコード量の短縮にもなりますし、 ヘッダーやフッターを変更しなければ行けなくなった時に、簡単に変更ができます。 今回は以上とさせていただきます。 知らないことだらけなのでどんどん知識を蓄えていきたいと思います。

Java学習記録~復習:カプセル化~

夏休みをもらい実家に帰った時にカプセル化って具体的に何?と弟に聞かれた時に”プログラム内で不正に値を変えられないようにすることだよ?”としか答えられず改めて自分の勉強不足を知った8月 そして11月 改めてカプセル化について復習しなおしてみる

アクセス修飾子

フィールドを操作されたくない場合、フィールドの宣言と同時にprivateを宣言する privateは同じクラスないからでしかアクセスすることができないため、他のクラスから呼び出されることはない privateのように他からのアクセスを制限するものをアクセス修飾子という。 privateのほかにもメンバに関しては以下のアクセス修飾子がある
  • private: 同じクラスないからのみアクセス可能
  • package private: 同じパッケージからのみアクセス可能
  • protected: 同じパッケージ内もしくはサブクラスからのみアクセス可能
  • public: どこからでもアクセス可能
でもprivateにしちゃったらフィールドの値を取り出すだけでなく、アクセスすらできなくなっちゃうじゃん! そこで必要なのがgetterメソッドとsettrメソッド

getterとsetter

read only、write onlyのフィールドを実現できる フィールドの名前などクラスの内部設計などを自由に変更できる フィールドへのアクセスを検査できる

getter

クラスの内のフィールドの値を取り出すだけのクラス 実行結果

setter

クラス内のフィールドに値をセットするだけのクラス 実行結果 setterとgetterにより不正な操作を防ぐことができる

クラスに対するアクセス制御

  • public
  • package private
非publicクラスの特徴
1, ファイル名=クラス名でなくてもいい
2, 一つのソースファイルに複数宣言してもよい

じゃあ結局カプセル化って何?

外部からフィールドの操作をされないようにメソッドによってフィールドを保護すること いい感じで復習できた♫

コンストラクタと静的メンバを実際に使ってみる

ドラ(マコト)です。 今までデータベース接続するdao度に を書いてた. さらにはテスト環境、本番環境の各パラメータの統一ができていなかったため、環境を変えるたびにそれぞれのパラメータを入力していた。流石にこれはダルすぎる… そこでこれまでコンストラクトと静的メソッドを使ってきたことだし、どうにかならないかと思って少しいじってみた。 あとはこれをそれぞれのdaoで使ってやればいい Accessメソッドはクラスメソッドとして使いたかったが、どうにもうまく行かなかったので、無駄にコンストラクタを使ってインスタンス化している、、、 それでもuerNoの値を切り替えるだけでそれぞれの環境の切り替えが楽になる
もっといい方法はあると思うけど、今回はこんなところで勘弁…
スクリーンショット 2015-11-19 23.51.26

Javaでページングの処理をしてみた ~JSP編~

本日は、JavaとJSPでコードをいろいろと書いていたので、 その中で、自分なりに苦戦したなという部分を自分なりに整理しながら書いていきます!! その苦戦した処理は 「ページング処理」 です。 ブログなどによく見られる 「次へ」ボタンや「前へ」ボタンがあって、 違う記事にページ遷移するやつですね。

完成予想図

pagingImg 実は、一度この処理はJavaとJSPで書いてはいたのですが、 Java、JSP共に酷く長くなって、わかりづらかったので、 改めて書き直してみることにしました。(今回も微妙ですが・・・) それでは、早速そのコードを!!

JSPコード

って書いてもだいぶごちゃごちゃしていてわかりづらいですね(汗 ボタンの機能としては、
  • 「次へ」ボタン
  • 「前へ」ボタン
  • 「数字」ボタン(ボタンを押すとそのページへ遷移)
3つです。 それらを分けて書くのに苦労して、コードもタグでたくさん分けてしまっています。 表示させるかどうかの処理はJava側でやるべきなのかと思ったり、 「次へ」や「前へ」ボタンの処理を切り離して考えた方がいいのかなと思ったりしてます。 とりあえず、こんな感じでも問題なく動いたので(サーブレットは次回に)、徐々に自分なりにコードの最適化をはかっていこうと思います!!

Java学習記録~復習:静的メンバ~

ドラ(マコト)です。 今日もTech Crunch Tokyo 2015に参加してきました。 今日も昨日に増して胸熱!!! 特にスタートアップバトルね! 詳しい内容は今週末にまとめて書きます。 今日は引き続きJavaの復習です。メモメモ。。。

静的メンバについて

インスタンスごとにそれぞれに値を与えることになるけれど、共通の値を保って痛い場合がある Character.java Main.java 実行結果 たとえばのび太くんが四次元ポケットを使う場合、このままでは四次元ポケットは空のままで新たに道具を追加したいといけない でもstaticを使うだけで解決できる Character.java Main.java 実行結果 つまり共通の変数として値を持つことができる これが静的フィールド メソッドも同様である Character.java Main.java 実行結果 となる。注意しなければならないのはstaticがついていなフィールドやメソッドは使えないということ
スクリーンショット 2015-11-18 0.14.11

ブラウザのデベロッパーツールを比較してみて

久しぶりに本日からブログ(メモ)を再開していきたいと思います。 復帰後一つ目の記事は何を書こうかと迷いましたが、 たまたま、本日はとあるセミナーに参加してきたので、 そこでの所感を綴っていきます!! 今回はこちらのセミナーに行ってきました!! HTML、CSS、JavaScriptを使っていると、 ブラウザのデベロッパーツールは必須だと思いますが、 Chrome、Firefox、IE、edgeのそれぞれのブラウザの機能の紹介でした。 各ブラウザの機能を聞いていると、 「こんな機能もあるのかと驚きの連続でした」 (僕が知らなすぎるだけです。。。) それでは、僕が感心した機能をそれぞれ紹介していきます!!

Chrome

Chromeで使いたいなと思ったのは、 モバイルデバイスのネットワークエミュレーションです。 スマホでブラウザを表示したときのパフォーマンスがチェックできて、 ページの読み込み方を実機を利用せずにおこなえるのは魅力的だなと思いました。

Firefox

おそらく僕自身は使うことはないと思うのですが、 Web Audio Editorというものがあり、 Web Audio APIを可視化して操作できるとのことです。 ある周波数帯域だけの音を消したり、 音をずらしてみたりと、 ブラウザでここまでできるのかと感心しました!!

IE/Edge

これらの2つはF12(WindowsのF12キーで表示)というデベロッパーツールがあるが、 IEとEdgeで機能が全く違うとのこと。 IEの方はIE固有の機能に対応させていて、 例えば、旧IEのバージョンの互換性のチェックが簡単にできるそう。 また、Edgeはまだリリースされて1年足らずということで 機能としては足りないところがあるが、 続々と新機能が追加されているそう。 もし、この機能が欲しいと思ったら、 機能のリクエストができるらしいです!! その機能が欲しいと同意が1万を越えたらすぐに対応してくれるそう(笑) と、それぞれの機能を見てきましたが、 結局どれを使えばいいのかは迷いますね。(MacユーザーなのでIEとEdgeは使えませんが) とりあえず、基本的な機能から使い慣れていこうと思います!!