dポイントプレゼントキャンペーン実施中!

初めまして。NativeのAndroidApp開発を初めて数か月たった学生プログラマです。

今回より実用的なものを目指すために

「アプリの入った端末」が 「一つのデータベース」に対して 「追加、読み込み」をする、という処理をしてみたいのですがよくわかりませんでした。
調べてみてわかったことは

HTTP通信によりデータベースにアクセスする。
その方法は二種類あってメジャーなのはHttpURLConnectionライブラリを用いる。

ここまではサンプルなどもありわかったのですがデータベースはどのようなものを用意すればいいのでしょうか?

何かおすすめのサイトやDB。また、間違った認識があれば指摘していただきたいです。

A 回答 (2件)

>NativeのAndroidApp開発を初めて数か月たった学生プログラマです。


C言語の質問?
Javaでの開発の場合、ネイティブアプリではないけどそうなるとJavaのHttpURLConnectionは使えない。
(本体はネイティブでCで書いたとしてそこだけJavaで実装する?)

>ここまではサンプルなどもありわかったのですがデータベースはどのようなものを用意すればいいのでしょうか?
なんでもいいよ。使うレンサバなりにWebのサーバサイドで使えるデータベースならなんでも

後、http通信で最新のデータを取得するにしてもキャッシュしてデータとしてAndroid端末に保存を考えているならAndroid上で使えるDBはSQLiteになる。
    • good
    • 0

どうもピントを外しているようにみえます。



アプリの入った端末が一つのデータベースに対して追加、読み込みをする、っておかしいでしょう。
論理名と物理名がごっちゃになっていますよ。

端末に入ったアプリが、一つのデータベースに対して、追加書き込みをするのですよね。

あるいは、端末に入ったアプリを構成するプログラムが、フレームワークごしに一つのデータベースに対し追加書き込みを実現する、ということですね。

その一つのデータベースは、サーバー機のようなところにある、公開されているものだと思うべきでしょうね。

ま、単純に、端末はどうでもいいのです。
Android開発をしたいのであれば、最終のテストはスマホを使うことになります。
しかしプログラム開発としてはスマホは別に必要ありません。むしろ邪魔です。

データベースは、フレームワークごしに触るものですから、なんでもいいでしょう。
というか、何でなければならない、は通りません。
そもそも、Androidのアプリ開発をするのに、自分でデータベースを設定することなんてないのじゃないでしょうか。
おすすめのDB、という発想があったらそれは間違っていますよ。

商品マスタ、とか顧客マスタ、が最初から存在しているサーバーと会話をするのですよね。
既存のものをスキャンしたり新データをコミットしたりしたいのですよね。
それがスマホのアプリ開発ですよね。

だったら、プロバイダのサーバーのインターフェースを調べてやってみればいいのです。
GoogleだとかYahooとか、Niftyとか。
追加書き込みをやってみたいのなら、スケジュールの登録みたいなものを自分のIDでログインした状態にしてやればいいのじゃないでしょうか。

実用的、ではなくやっぱり練習だお稽古だというところならば、自分のPCにOracleのVirtualBoxというものをインストールします。
それは自分とは別のマシンという形を作ってくれるものです。
同じアドレス空間内に別のIPアドレスを設定できます。これで別マシンになります。
その上にゲストOSという、別OSを入れられます。
まあcentOSをインストールしましょう。無料のLinuxです。
そして、Apacheをインストールし、DNSには適当に考えたドメイン名(公開しないから大丈夫)をIPアドレスにつなぎましょう。
このHTTPサーバーの入口に、hello worldかなんかを表示するだけのHTMLのファイルをindex.htmlとして置いておきます。
ポート番号80はデフォルトで空いているはずなので、ブラウザでそのドメイン名叩いてください。
hello worldと表示されたら、ホームページはおしまいです。以後何もやらなくていいです。

ここにMySQLでもpostgreSQLでも、とにかく無料のDBを導入します。
SQLiteが一番楽でいいのですけど、なぜかSQLiteはこけるひとが多いので、MySQLが一番悩まなくていいんじゃないですか。
まさかとは思いますけど、Windowsにこだわって、ゲストOSもWindowsにして、ACCESSを置こうとしたらそれは思い切り間違ってます。
MicrosoftのものでもSQLサーバーなら問題ありませんけど、ACCESSはコネクションを一つしか張れませんから、サーバーに置くべきしろものではありません。

create database とcreate tableをします。
架空のデータを考えるのは疲労しますから、すでに自分の持っているデータを格納するように考えましょう。
友達の住所一覧でもいいし、持っているCDのリストでもいいです。すでに作ってあることが条件です。
それを格納するtableをクリエイトするのです。そして、すでに持っているデータをCSVにでもしてインポートしてください。

このDBが起動されていたら、PCからここのIPアドレスのその名前のDBに対してコネクションが張れる試験をします。
これが重要です。本なんかには、127.0.0.1とかlocalhostで繋ぐように例示してあるものがありますが、オレオレ接続ですから、VirtualBoxでは通用しません。だからしっかりとそのIPアドレスで接続できることを確認します。

もちろん、VirtualBoxのOSは、起動後すぐにDBが起動し、次にApacheが立ち上がるというシーケンスで立ち上がりシェルを構築します。

さてコネクションが張れるなら、アプリからデータ一覧全部取得をやってみます。select * です。
それを画面に表示するのはプログラムでやるのです。
大体うまく行くはずです。

あとは、InsertでもUpdateでもdeleteでも、やってみてください。
もちろんプログラムに書いてやるんですよ。

PC一台でやっていますけど、自分とは別のサーバー上にあるリソースに会話をするという経験をここでしているのです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!