ARについてだらだらと(開発とは無関係)
とっても久々の記事になってしまいました。
一応、Androidアプリの開発は行っていたんですが、記事を書く時間を何かと行事とかを言い訳をしながら作らなかったのが原因です。
未来の自分への戒めにしたいですね・・・
さて、今回は直接開発とは関係ありませんが、AR(拡張現実)ってなんなんだ?ということを今更ながら考えていきたいです。
AR = 現実にない画像や立体モデル、文字などを表示してみんなの暮らしをおもしろく豊にする。
程度に考えていました。
恥ずかしいことに最近知ったのですが、においを扱うARもあるとのことでした。
え、においをどう使うの・・・・??
正解は、においを合成する機械を使って人に嗅がせるんです。そうすると、においのせいで今食べてるものの味や場所の感覚が変わってきて、美味しい味に感じたり居心地のいい場所に思わせるというものなんだそうです。
聞き方を間違えればかなり怪しい機械に感じますが、こういうものもAR(拡張現実)と言われるのだなと思いました。
なので、ARは映像というイメージを持つ方もたくさんいるかと思いますが、あくまで、人の感覚に訴えかけるものの一つである視覚の分野を見ていたのであって、においなどの人の感覚に訴えかけるものもARということですね。
ということは、いつも聞いてる音楽もそのうち拡張現実とか言われるかもしれないですね!
ランニングとかしてるときとか元気ないときに熱い曲を聞くと元気が出ますよね!あれもARなのかもしれないですね!(ちょっと違うか・・)
ということでかなり久々の更新だったのですが、これからはしっかり書いていきたいと思います!
JAVAで必須! クラスとオブジェクト
JAVAでよく問われ、いろいろなサイトで扱われている「クラス」と 「オブジェクト」についてまとめていきたいと思います。
技術的な話については後ほどで、おおよその役割についてまとめておきます。あまり、技術的に書いても見返したとき分からなくなってしまいそうなので><
・「クラス」
「設計図のようなもの」と説明されることが多いですが、自分なりの解釈で進めます。
クラスとは「生き物や物の情報を分かりやすくひとまとめにするもの」だと思います。
???ってなると思うので、「犬」を例にとって考えてみます。
変数の宣言はひとつの情報しか入りません。
double weight; と書けば、体重や重さの情報が入ります。(もちろん、格納されるのは倍精度浮動小数点型の数値ですが)
でも、犬は体重だけでなく、身長などの区別、散歩もします。
→犬には体重(変数)、身長、歩く動作(メソッド)の情報をまとめたものである。
と言えます。(もっと加えていくとさらに正確になっていきます)
実際に書いていくと
class Dog{
double height; //身長
double weight; //体重
double tiredpoint; //疲れ度
void walk(){ //散歩メソッド
tiredpoint += 0.1; //疲れた~~
}
}
となります。
このように、変数とメソッドを集めて「犬とはこういうものだ」と定義しています。
・「オブジェクト」
オブジェクトは「定義(クラス)から実際に作り出されたもの」です。
「クラスからオブジェクトを作る」とも言われますね!
先ほどのDogクラスはあくまで定義であって、まだ犬がその場にいません。
そこで、実際の犬(オブジェクト)を作り出します。
プログラムで書くと、
Dog poti; //Dogクラスのオブジェクトを参照する変数を宣言ポチを作る
poti = new Dog(); //ポチは犬だよ!と宣言。
//potiがDogクラスのオブジェクトを参照する
次に、ポチの説明を加えていきます。
poti.weight = 8.0; //ポチの体重
poti.walk(); //散歩するポチ
と使っていきます。
(補足)
クラスとC言語の構造体って似ているなと思い調べてみましたが、プログラミング言語によって仕様が異なるということなので、またの機会でまとめようと思います。
<XML>LinearLayout と RelativeLayout その1
なんか難しそうなこと書きそうですが、そんなことはありません!
androidアプリのデザインを司るXMLでのレイアウト方法の違いなのです!
ボタンや画像などの位置を特定させてあげるものですね!
LinearLayout とは??
画像を水平方向(横)か垂直方向(縦)に一列にならべることが得意!
順番にならべさせることが得意というわけです。
RelateiveLayoutとは??
他の画像との位置関係を指定して画像を配置するもの。
画像Aを画像Bの上に置くよ~という様にレイアウトする書き方です。
複雑に並べるのはRelativeLayout、整列させたいのはLinearLayoutを使用するのかなと思いますが、今後勉強を進めていって実際の書き方や、有効な使い方を書いていきたいと思います。
一番大事? android開発環境の整理
今回は、自分のandroidアプリ開発の環境を整理していきたいと思います。
まずは、一番大事な実機ですね。
1.android端末
Androidバージョンは、4.1.2です。
参考までに、自分が使っているのは「ELUGA P-02E」 です。
2.MAC OS
調べ方がわからなかったのですが、おそらく
OS X Mountain Lion です。
普段、windowsしか使っていないので、c++を扱う場合はwindowsで開発するかもしれませんが、今回はMACを使って開発します!
ここから実際の準備段階のような形になってしまうのですが、つらつらと書き起こしてはメモの意味がなくなってしまうので、箇条書きで順番に進めていきます。
これがなきゃJAVAで開発できませんね。
・Eclipseのインストール
Eclipseは総合開発環境(IDEとも呼ばれてる)で、開発を助けてくれます。
バージョンは「4.2 JUNO」です。
今までは、JAVAを開発するための準備でした。
Android SDKはAndroidアプリを開発するための準備となります。
Androidアプリを作るための部品を集めたものです。
・Android開発ツール(ADT)のインストール
ん? さっきのSDKと何が違うんだ??と名前も似ていて間違えやすいですが、
→EclipseにAndroidアプリを作るための道具を用意してあげるものです!
料理(クッキー)で例えたら、
SDK →小麦粉、チョコ等、気持ち(アプリを作るうえでの大事な材料)
ADT →オーブン(アプリ開発の道具)
となるかな~と思います。 人によっては伝わりづらいかも・・・
インストール方法は、説明ベタということもあり省かせていただきました。
そういや、何が必要だっけ??って気持ちで使ってもらえたらなと思います。
次から実際に開発で疑問に思ったところなどを書いていきます。
初めの一歩! 自己紹介&何で開発するか
初めまして!
これからプログラミングをやっていって、いろいろメモしていきたいと思います。
基本メモになっちゃいますが、同じように困っててこのブログに来た人の助けになれれば幸いです。
このブログは、今までいろんなブログに助けられてきたので自分も!ってことと、プログラミングが途中で挫折してしまわないように。ということで作りました。
まぁ、自己紹介はこの辺にして・・・
ARに関する開発を行っていきたいと思います!
ARとは?
Augmented Realityの略で、日本語では拡張現実と訳されてい ます。
人が環境から受ける物理情報に対して、コンピュータが生成し たデジタル情報を重ね合わせる。
簡単に言うと、カメラで映している画面に自分の好きなキャラ クターや文字を出 現させられるSF的な技術です。(ARの一 部分ですが)
実際にゲームやカーナビなど多分野で使われています。
たくさんの人に愛用され必需品となっているandroidスマートフォンで開発を行っていきたいなと思います。
そして、その総合開発環境であるEclipseを使っていきたいと思います。
注意!!
散々AR、AR言ってましたが、JAVAをほとんど扱っていないためまずJAVAで簡単なアプリを作ってから、ARに臨みたいと思います。
AR期待で来た人すいません・・・
ただ、ARをきっかけにプログラミングを学んでいきたいです。