Java学習記録〜復習:コンストラクタ〜

ドラ(マコト)です。
今日はTech Crunch Tokyo2015 1日目に参加してきました。
かなり刺激的な1日だった。。。
明日も参加するのでTCについては明日書きます。
今日は昨日に引き続きJavaの復習 オブジェクト指向の根底にくるのは、クラスによるインスタンス化 たとえばこんなネコ型ロボットを定義するクラスがあるとする CatTypeRobot.java それをメインクラスでインスタンス化してやると Main.java 実行結果 ここで毎回インスタンス化したネコ型ロボットに体重を定義するのはめんどくさい
コンストラクタはこの悩みを解決してくれる Main.java 実行結果 とコンストラクタで初期化した値が出力される
ただしコンストラクタを使うには2つの条件がある
1 クラスと同じ名前
2 戻り値を持たない コンストラクタに引数を持たせる事ができる CatTypeRobot.java この場合Mainクラスで引数を与えることになる Main.java もう一人登場人物を出してあげたいけど引数に名前を書きたくない場合
コンストラクタを2つ用意しなければならない CatTypeRobot.java またコンストラクタからコンストラクタを呼び出すこともできる
その場合 とすればいい ということで今日はこんな感じ
明日はTechCrunchのことを書くよ

オブジェクト指向を改めて考えてみる

ドラ(マコト)です。
Javaの勉強を始めた頃、先輩のエンジニアにこんな質問をしたのを覚えています。 僕「いろんな人に”オブジェクト指向って何なんですか?”って聞くとそれぞれ違った答えが返ってくるんですけど、結局何なんですか?」 先輩「浅いね。。。まだ本格的な開発経験がないからピンと来ないかもしれないけど、大規模な開発になってくるとそれを自分の頭だけで整理していくのは大変でしょ?オブジェクト指向はそういう人間が把握しきれない複雑さを解決してくれる考え方みたいなものなの。」 僕「なるほど…?」 先輩「複数のクラスを定義して相互に関連させながら、プログラムを作っていくでしょ?
その時にクラスの分け方に明確なルールみたいなものはあった?」 僕「。。。あまり考えたことなかったかもしれないです」 先輩「それをより明確にすることで、どんなに大規模になっても人間の脳でも把握しやすいプログラムを書くことができるようになるの!」 先輩「楽して、楽しく開発したいならオブジェクト指向はマストで身につけるべきね!」 僕「おおぉぉ!!!」 そして半年が経つ。。。
なんとなく理解はしているつもりでも、実際にそれが開発に活かせているのかわからない。。。
ということで今後の課題が見つかった。
** オブジェクト指向をマスターしよう! ** さあ勉強勉強!(明日はTech Crunch)

学習計画

ドラ(マコト)です。 ブログを再開したもののやっぱりこの外観が気に入らない
テーマは豊富だけどその中からドンピシャなものを選ぶには無駄に時間がかかる、、、
どうせならWordpressの勉強がてらオリジナルのテーマを作ってしまおう というわけで少しづつではありますが、このブログを改変していきたいと思います。
ただあれもしたい、これもしたい、もっとしたいもっともっとしたい人間の僕には勉強したいことが多すぎるので本当に少しづづはじめて行こうかと思っています。 簡単な学習計画を立てるとするならこんな感じ
Java Java Swift Swift 随時 WP 随時
この学習計画に沿ってブログの内容も更新していこうかと思います。
もう少し細かい学習計画は各曜日で、、、 これはJava -> Swift と勉強した経験からだけれど、 並列的な言語の学習はそれぞれ理解がムズカいいところを補えたりするからけっこう理にかなっていると思う。 理解さえできちゃえば覚えるだけだしね笑 それぞれの来週の課題は

Java : 復習

ここ最近Javaに触れる機会が少なかったので来週は復習の時間にあてて、再来週以降はフレームワーク、特にPlay frameworkに興味があるのでそこら辺をやっていこうかなと

Swift : 資料作成

来週の21日にショートセッションで発表する機会があるのでその資料作りがメイン
それ以降はtwitterのクライアントアプリを作ってみたいのでまだ理解しきっていないtableViewのCustmcellについて勉強していこうと思っています。

WordPress : 【書籍】WordPressユーザーのためのPHP入門

そんなに量はないので毎日すこしづつ読んで土曜日にアウトプットする形をとる
新しい言語を覚えるのはけっこう労力をつかうので目標はWordPressでオリジナルテーマを作れるレベルまで

随時 : 【書籍】github実践入門

当面はもう一つのアウトプット作戦としてgithubにコードを晒していきたいのでgithubの勉強に力を入れる
あとそれとは別に1日10分の英語勉強しようと思う。
まずはリスニングからということで”Listening English”というiOSアプリで勉強していく

さあ有言実行、公言実行!!!

iOSアプリ2回目のリジェクト

最近はダフってばかりのダフ(マコト)です。 今朝はPCを開いて愕然としました。
現在iOSアプリの申請をしているのですが、appleさんからそのレビューが届いていたのです。
Information Needed We began the review of your app but are not able to continue because we need access to a video that demonstrates your app in use on an iOS device. Please provide a demo video that shows background location mode in use. To provide a link to a demo video:
  • Login to iTunes Connect
  • Click on “My Apps”
  • Select your app
  • Click on the app version on the left side of the screen
  • Scroll down to “App Review Information”
  • Provide demo video access details in the “Notes” section
  • Click “Save”
  • Once you’ve completed all changes, click the “Submit for Review” button at the top of the App version information page.
Once this information is available, we can continue with the review of your app.
簡単に翻訳すると
“レビュー始めたんけど、よくわかんないから実際にアプリを使ってるデモビデオを送ってくれ”(適当ですみません) 今回作成したアプリでGPSを使って現在地の取得しているため、その機能が使われているところを見たいらしい、、、 実はリジェクトされるのはこれで2回目
前回もメタデータリジェクトされている
内容は
Your app uses the Location Background mode but does not include the required “battery use” disclaimer in your Application Description. Next Steps Please add the following disclaimer to your Application Description: “Continued use of GPS running in the background can dramatically decrease battery life.” Since your iTunes Connect Application State is Metadata Rejected, we do NOT require a new binary. To revise the metadata, visit iTunes Connect to select your app and revise the desired metadata values. Once you’ve completed all changes, click the “Submit for Review” button at the top of the App Information page. NOTE: Please be sure to make any metadata changes to all App Localizations by selecting each specific localization and making appropriate changes.
バックグラウンドでGPSを使うから電池の消費には気をつけて!みたいな注意をアプリの概要に書いてくれというもの そして今回もバックグラウンド関連
そんなのデモビデオってそんなの必要なんか。。。
とか思いつつもAppleStoreReviewガイドラインを見てみると
不完全な情報
iTunes Connect の「App Review Information (アプリケーション審査情報)」セクションに、審査に必要な情報をすべて入力してください。サインインが必要な機能がある場合は、有効なデモアカウントのユーザ名およびパスワードを入力してください。特別な構成が必要な場合は、詳細を入力してください。再現が困難な環境を必要とする機能、特定のハードウェアを必要とする機能がある場合は、デモビデオまたはハードウェアを用意してください。また、連絡先情報に不備がなく、最新のものであることを確認してください。
(再現が困難な状況でも特定のハードが必要とする状況でもないんだけどね、、、)
一般的なアプリケーションの却下理由 素直に簡単なデモ動画を作ってyoutubeにあげて投げてやりました。 初めて作ったアプリが早くリリースされる事を願って、、、

Swift学習記録~列挙型~

ここ1ヶ月iOSアプリ開発に携わる機会があったのでSwiftも勉強中のダフ(マコト)です。 今日は学習のメモ的な感じでまとめようかと思います。

列挙型 enum

プログラム中で予め取ることのできる値が決まっていてそれ以外の値を使用したくないような場合がよくある。そんなとき数値型で0は〇〇,1は〇〇みたいに決めて使用するより、専用の型を作ってそれ以外を取れないようにしたほうが便利である。 そんなときに使うのが列挙型 例えば曜日のように初めから決められた値がある場合、それぞれの型をつくりたい その場合列挙型が使える <例> と宣言できる

使用方法

これで”日曜日”が返ってくる. 予め列挙型だと分かる場合は列挙型の名前は省略可能

型を指定する

実際に列挙型の値の型を定義し、値を指定することも可能
型の値の取得 [toRaw()関数]
型の値を取得する場合はtoRaw()関数を使う
値から列挙型を取得 [fromRaw()関数]
値から列挙型を取得する場合はfromRaw()関数を使う
複数の型を取る列挙型
みたいな感じで使える この次はもっと実用的な場面での使い方を勉強しよう

Evernoteにmarkdownで書いてみる

今日からまた再開 新米エンジニアのマコトです 継続は力なりということで新米らしくアウトプットに力をいれようかと。。。 でも何書こう、、、 Swiftの勉強もしてるからそっちのアウトプットを充実させようかな そしていざ書きだそうとするとするも、、、 今までは、一旦evernoteに書いてそれをコピペなんて方法で簡単ブログは書いてきたけど、技術的な内容書くにはあまり適さないし、何よりmarkdownで書きたいよね ということでEverNoteを使ってmarkdownで書けないかと色いろ探してみると [Qiita] Atomをevernoteのmarkdownエディタとして使う(EVND) ふむふむこれは良さそう 何より個人的にAtomが好きで、インターンに来ているエンジニア志望の女の子にもめちゃくちゃ勧めて使わせるぐらい好き (好きなエディタ使わせてやれよ…)

Atom 導入

ということでAtomのインストールから https://atom.io/ こちらのページからダウンロードして
(何気にこのプロモーションビデオが好きなんですよ)

とりあえず入れとけパッケージ

  • japanese-wrap 日本語の幅をうまく調整してくれる
  • color-picker カラーコードの直感的な選択ができるカラーピッカー
※細かい設定方法はまた今度にして、、、

EVND Ever Notedown導入

今回使うのはEVND (Ever Notedown) atomのパッケージでEvernoteにmarkdownで書けそう

ブログ用のディレクトリを作成

$ ln -s path/to/folder ~/.atom/evnd $ cd ~/.atom/eved $ echo "{}" > index.json $ git init $ git add . $ git commit -m "Initial commit"

パッケージのインストール

$ apm install ever-notedown (atom メニュー Preferences -> setting -> installからでも行けそう)

使ってみて

あとはAtom -> パッケージ -> New Notedown New Note -> Create New Note Evernoteに保存するには パッケージ -> Ever Notedown -> current File -> send file to Evernote でいけます。 ここからワードプレスに投げられないかな〜