家計簿アプリを作るとし、ウェブとアンドロイドで連携したものを作成したい場合、
どのような項目、言語を勉強して作成するかご意見を聞かせてください。
【背景】
VBAの勉強から始まり、プログラミングを勉強したいと考えた初心者です。
勉強には目的が必要ということで、家計簿アプリの作成を目的としました。
プログラミングの基礎、もしくは入りやすいのはHTML,CSS,Javascriptかと考え
1)HTML,CSS,Javascriptで家計簿ウェブアプリの作成
2)アンドロイドアプリ作成のための言語(Java?)
Android Studioの使い方を学び、アンドロイドアプリを作成
3)それらを連携する。
という道筋を考えました。
まず、HTML,CSS,Javascriptの勉強を開始。
「Progate」から勉強を始め、
「ドットインストール」で学び、テキストエディターはAtomを使いながら、
HTML,CSS,Javascriptの基礎講座を修了。
Javascriptでウェブ上で動くものが作れたものの、
ページを遷移するとデータが消えてしまうことからデータベースの学習が必要と考えて
indexedDBの勉強を開始
今後の予定として、アンドロイドアプリを作るために、ドットインストールの講座の、
アンドロイドアプリ開発入門を勉強する予定です。
この過程の中で、ログインして、自分の入力した家計簿の内容を保存できるようなアプリを作る際に
indexedDBでいいのか?MySQLを学んだほうがいいのか?という疑問にかられました。
(データベースに関する知識はありません。たまたまindexedDBを見つけました。)
そこで、皆様ならどうされるかを聞きたく質問させていただきました。
どうかご教授ください。
また、
初心者が作るなら〇〇を使うのがお薦め。でもそれだと大した機能ではならないから熟練者(上級者)は△△を使って作っている。等
初心者だと入りやすい方法、熟練者ならこのようにやる、等の違いもありましたら教えていただけたら嬉しいです。
よろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
家計簿アプリを作るとし、ウェブとアンドロイドで連携したものを作成したい場合、
どのような項目、言語を勉強して作成するかご意見を聞かせてください。
異なるアクセスで同じデータを参照する場合、クライアントサイドとサーバサイドの実装が必要になりますので、
それぞれの役割をしっかり把握しておかないと混乱することになります。
そこの区別ができていないようであればまずはそこから学習しましょう。
1)HTML,CSS,Javascriptで家計簿ウェブアプリの作成
2)アンドロイドアプリ作成のための言語(Java?)
Android Studioの使い方を学び、アンドロイドアプリを作成
3)それらを連携する。
という道筋を考えました。
ひとつずつ進んでいく過程、良いと思います。
それぞれの道筋毎に助言を。
** 1)HTML,CSS,Javascriptで家計簿ウェブアプリの作成 **
1端末の1ブラウザのみで使うのであれば動くものは作れると思います。
ただし、以下の場合は同じデータを参照できません。
- 複数端末でアクセスする
・PC1とPC2
・PCとスマホ
・スマホ1とスマホ2など
- 同一端末から異なるブラウザでアクセスする
・同じPCでChromeとFirefoxなど
こういった場合でも同じデータを参照したい場合、サーバサイドの実装が必要となり、
質問者様も懸念されている通り、データベースを使用する必要があります。
サーバサイドのプログラミング言語およびDBMSは質問者様のスキルや好み次第ではあるので、一概にこれがいいとは言えないです。
** 2)アンドロイドアプリ作成のための言語(Java?) **
今ならJavaよりKotlinでしょうか?
あるいはmonacaとかでハイブリットアプリ制作も一案ですかね。
** 3)それらを連携する。 **
1)HTML,... のタイミングでサーバサイドを実装していれば、さほど難しくはないかなと思います。
1), 2)をそれぞれクライアントサイドでのみデータを持つようにしているのであれば、
この段階でサーバサイドの実装が必要になります。
同時にクライアント側で保存処理してたものを、
サーバサイドにアクセスして保存とか読み込みとかするように変更する必要もあります。
ページを遷移するとデータが消えてしまうことからデータベースの学習が必要と考えて
データベースはデータを保存する一手段に過ぎません。
他にもセッションやCookieなどといった手段もあります。
(が、今回作りたいものからすればデータベースが最適化と思います。)
この過程の中で、ログインして、自分の入力した家計簿の内容を保存できるようなアプリを作る際に
indexedDBでいいのか?MySQLを学んだほうがいいのか?という疑問にかられました。
mts10806様も仰っている通り、indexedDBはクライアントサイドで使用する保存手段です。
サーバサイドで保存する手段が適切かと思うので、MySQLの方が適切です。
ただ、挙げられていないものでPostgreSQLやOracleDBなど、様々ありますので、
これを機に一度調べてみるのも良いかと思います。
初心者が作るなら〇〇を使っている。でもそれだと大した機能ではならないからプロの方は△△を使って作っている。等
初心者とプロの違いも教えていただけたら嬉しいです。
何を持ってプロを言えるのかわからないので、脱初心者として書きますが、
初心者と脱初心者の違いは知識量と技術力と検索力であると思います。
つまりは「良いプログラムをどれだけ見て」「自分でどれだけプログラムを書いて」「わからなければ何をどう調べてきたか」です。
投稿2019/02/18 03:59
総合スコア5158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
ベストアンサー
ページを遷移するとデータが消えてしまう
この考え方は正確には違って、「単にどこにも保持していないだけ」です。
ご存知とは思いますが念のため。
indexedDB
これはあくまでクライアントサイドにデータを保存する仕組みです。
つまりアクセスする端末が違えば情報の共有がされるわけではありません。
端末固有の情報、例えば、どのページを見たとか、画面を操作した情報(地図のポイントをつけたとか)を保管するためによく使われます。
また、クライアントサイド(正確にはブラウザ)に保存する仕組みであるため、
容量はブラウザにより一長一短です。
容量については参考→モダンブラウザのストレージ容量まとめ
家計簿のような仕組みだと半永久的にデータがたまっていくことを考えると
DBサーバーによるデータベースの利用は避けられないと思います。
あとは要件次第ですね。
Javaで とは言いますが、”Android StudioでJavaで全部作る”のか、”JavaをDBとの連携に使うAPI的な使い方だけして、JavaをJavaScriptからAjaxで実行するような形とする”のかで作り方もだいぶ変わってきます。
スマホアプリはHTMLとJavaScriptだけでも作れますしね。
つまり「ウェブとアンドロイドで連携したもの」がどこまでを想定しているか、です。
「PCからも同期してアクセスできるようにしたい」とか色々要件があると思いますので、そのあたり要件定義として具体的に詰めてみてください。
投稿2019/02/18 00:50
総合スコア80888
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
初心者が作るなら〇〇を使っている。でもそれだと大した機能ではならないからプロの方は△△を使って作っている。
と、言われましても、プロでも自宅では初心者が使うようなもので我慢してらっしゃる方も大勢います。特にお金がかかるところではね...
VBAができるのでしたら、AndroidにもExcelやwordはあります。
VBAは動かせませんがデータのみをクラウドにアップして外でも見れるようにしておけば、済む話では?
そもそも家計簿なら、既存で便利なものがあると思いますよ。
投稿2019/02/18 01:27
総合スコア3307
0
1)HTML,CSS,Javascriptで家計簿ウェブアプリの作成
2)アンドロイドアプリ作成のための言語(Java?)
Android Studioの使い方を学び、アンドロイドアプリを作成
3)それらを連携する。
という道筋を考えました。
学習ロードマップとして非常に良いと思います。
ただし、すべてをこなそうとすると、かなりのボリュームになりそうですので、
一旦は Web 技術のみで「家計簿」を開発することをおすすめします。
Web 技術としては、PHP や Ruby on Rails がおすすめです。
RDB(MySQLなど)も含めた Web 技術の全体像が理解できるようになりますし、
初心者からプロまで幅広く使われています。
PHP や Ruby on Rails は Progate やドットインストールでも学習することができます。
投稿2019/02/18 04:45
総合スコア6500
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/18 04:47

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。