質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.35%

無料でDB利用のハイブリッドアプリを作る方法を教えてください。

解決済

回答 6

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 2,179

WeilSpinor

score -34

プログラミング初心者です。JavaScriptの実践演習として、JavaScript一本でスマホ用アプリを作りたいと思い立ち、ハイブリッドアプリの開発環境を整えることに奮闘しています。
Monacaが王道のようなので、それを使おうとしたのですが、Monacaでのアプリ開発でデータベースを利用する(SQLite)場合、有料プランに入らなければならないそうで、無料でやりたかったので、やめました。
無料でJavaScript(node.js)のみでデータベースを利用する方法はあるでしょうか?
ご回答よろしくお願いします。

【試したこと】
・JavaScriptで作れるハイブリッドアプリの開発方法、環境整備について調べた
・Monacaに登録してみた
・データベースの基本について、インターネットや書籍で調べた
・JavaScriptのみで扱えるデータベース管理システム(SQLite、WebSQLなど)について調べた

【備考】
スマホアプリ開発の王道であるAndroidのJavaやiOSのSwiftを採用しない理由は以下の通りです。
・あくまでJavaScriptの実践演習にしたいから。
・「プログラム言語入門者は、同時に複数の言語に手を出すのはよくない。まずは一つの言語に絞って、それでプログラミングの基本を覚えるべきだ」
といったことが本に書いてあったから。(谷尻かおり/これからはじめるプログラミング基礎の基礎(改定3版)/第2章 4.1 p.57-58)
・以下のサイトに、JavaScriptは、Webコンテンツだけでなく、ハイブリッドアプリという形でネイティブアプリに顕色ないスマホアプリを開発できたりと、とても汎用性の高い言語だとあったから。
https://www.sejuku.net/blog/8273

要求としては、以下の通りです。
・必要に応じてSQLを覚えるつもりはある
・そんなに大変じゃないことを積み重ねて自信をつけたい
・アプリを仕上げる上で不必要に面倒な要素の数をなるべく少なくして、なるべくハードルを下げたい
・現時点ではサンプルプログラムくらいの規模のプログラミング方法しかしらないので、実際に実用的なアプリを開発する上で、それに付随するデータベースだとかAPIとかいった仕組みをどうやって組み合わせているのか、環境整備、といったアプリ作成の流れを実感として知りたい

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • dice142

    2019/02/27 18:08

    「・そんなに大変じゃないことを積み重ねて自信をつけたい」「・アプリを仕上げる上で不必要に面倒な要素の数をなるべく少なくして、なるべくハードルを下げたい」と仰っているのになぜいきなりハイブリットアプリにこだわるのでしょう?
    段階を踏んでまずはブラウザで閲覧できる動的な何かを作成した方が要求通りかと思うのですが。

    キャンセル

  • 退会済みユーザー

    2019/02/28 02:41

    複数のユーザーから「問題・課題が含まれていない質問」という意見がありました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

回答 6

+5

無料でJavaScript(node.js)のみでデータベースを利用する方法はあるでしょうか?

学習が目的であれば、自分のPCに無料のデータベースをインストールするのがおすすめです。

・「プログラム言語入門者は、同時に複数の言語に手を出すのはよくない。まずは一つの言語に絞って、それでプログラミングの基本を覚えるべきだ」

これは、アプリ開発でも同じことが言えます。

「アプリ開発入門者は、同時に複数のプラットフォームに手を出すのはよくない。まずは一つのプラットフォームに絞って、それでアプリ開発の基本を覚えるべきだ」

  • JavaScript をやりたい
  • SQL を覚えたい
  • スマホアプリを作りたい(iOS もやりたいし、Android もやりたい)

とやりたいことがたくさんありすぎて、どれから手をつけて良いのか分からない状態になりそうです。

プログラミング初心者が、いきなり Monaca でハイブリッドアプリを開発するというのはかなりハードルが高いですし、もう少し目標を絞った方が良いと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/28 01:38 編集

    ご回答ありがとうございます。

    目標は、ゆくゆくはフリーランスで簡単な仕事をしたり、バイトできたりすることですが、

    とりあえず今の目標は、
    スマホアプリを作ることです。

    そもそも実用的なスマホアプリを作る、という実践演習の段階では、

    UIのデザインと開発のため言語を覚える、
    データベースの搭載のためSQLを覚える、

    など色々な知識が必要なのは避けられないと思うので、スマホアプリ開発を通して、
    「プログラム言語もSQLも作りながらその都度覚える」
    という一々分けないスタイルでやるつもりです。

    単元に絞ってばかりやると教科書を読んで例題をとくみたいな方式になってしまい、何に使うか分からないと理解が薄いし、能動的学習の理論からしても、記憶に残りづらいからです。

    MONACAでハイブリッドアプリ開発をやろうとしたのは、せっかくやったJavaScriptを使わないのはもったいないと思ったのと、

    質問文のリンク先のサイトで、「とても使いやすいIDEで、プログラミング初心者のスマホアプリ開発に最適」と言っており、自分の目的を全て満たしてくれるものだと判断したからです。

    キャンセル

  • 2019/02/28 02:29

    では、
    いまはデータベースの利用は諦めて(csvなどで代用)
    言語とプラットフォームを
    JavaScriptとMonaca
    に限定して、当面はこれだけでスマホアプリ等をたくさん作り、
    「アプリ開発の基本を覚える」
    というのは、どうでしょうか?

    慣れたら、JavaやSQL、Android Studioなどに手を出していく、といった具合で…

    キャンセル

  • 2019/02/28 06:59

    > 目標は、ゆくゆくはフリーランスで簡単な仕事をしたり、バイトできたりすることですが、

    フリーランスの仕事に繋げるなら、ほとんど案件のない Monaca より、案件の多い Swift や Java の方が良いかもしれません。
    そこを気にしないなら別に構いませんが。

    > では、
    > いまはデータベースの利用は諦めて(csvなどで代用)
    > 言語とプラットフォームを
    > JavaScriptとMonaca
    > に限定して、当面はこれだけでスマホアプリ等をたくさん作り、
    > 「アプリ開発の基本を覚える」
    > というのは、どうでしょうか?

    実践を通して学ぶという姿勢は良いと思いますし、一度ご自分で決められたやり方でやってみてください。

    キャンセル

  • 2019/03/07 20:01

    ご回答ありがとうございます。返信が遅くなり申し訳ありません。
    とりあえず、Javaの環境も整えてみました。
    Monacaで限界を感じたら、AndroidやJavaに移ろうかと思います。

    キャンセル

checkベストアンサー

+4

たとえばこの辺だと、数千円で名刺ケースサイズの小さなlinuxマシンを手に入れることができます。
Raspberry Pi 3 Model B+ スターターセット BASIC

次にこの辺を参考にお家サーバを立てて存分にDBの運用を体験してみてはどうでしょう。
SQLite の導入~ ラズベリーパイ研究室

どんな無茶苦茶をやっても文句を言われない状況で失敗経験を重ねることができる環境は非常に有効です。

マニュアル本のたぐいも少しは買っておきたいところでしょうから、マシン含めて全部で1万円ぐらいかかるでしょう。それぐらいの初期投資はしないとしんどいと思います。

monacaは以前私もちょっと試してみました。無料でいろいろできるのはありがたいですが、よくわからない制約もあり、そういったことを調べるのが面倒で止めてしまいました。結局、初級者が勉強するにあたり、低性能でいいから好きに使える実機を手元に置いておく以上の楽な方法は無いというのが実感です。やっぱりMySQLでないときついとか、pythonでWAF使ったほうがいいかも、となったときにも比較的簡単に対応できるでしょうし。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/07 20:07

    ご回答ありがとうございます。返信が遅くなり申し訳ありません。

    そういえば、
    知り合いが家に小さくてかわいいLinuxのコンピューターをおいて、
    consoleアプリケーションとPythonを使って、Twitterのbotを作って遊んでいるのをみたことがあります。

    Linuxマシンのハードディスクに作成したDBを保存し、それを使う、という感じでしょうか。
    楽しそうなので、そのうち試してみようと思います。

    キャンセル

+4

mBaaS(バックエンド関係をまるっと任せられるサービス)としてMonacaは有名ですが、他にもいろいろあります。

例えばGoogleが提供するFirebaseでは無料でJavaScriptのライブラリを用いてJavaScriptで簡単にDBを使うことができます。
Firebase 料金表

しかしFirebaseではMonacaと違い、モバイルアプリにデプロイする方法はありません。そこで、Apache Cordovaを用いればHTML, CSS, JavaScriptで作成したウェブサイトをハイブリッドアプリすることが可能です。

上記以外にも無料でハイブリッドアプリをつくる方法はあります。

Monacaの代替を探すのではなく、まずMonacaの機能を細分化してそれらに変わるサービスを探すのが早道かもしれません、

ただし、複数の技術を用いればその分学習することが多くなるので、大変です。上記の人の回答通り出費を惜しまない気持ちも必要だと思います。

余談ですが、スマホでうごくアプリっぽくしたいだけならPWAなんて選択肢もあると思います。
PWAとは(Progressive Web Appsとは) | SEO用語集:意味/解説/SEO効果など [SEO HACKS]

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

無料利用したいならクレジットカード登録必須だが無料枠のあるサービス(aws,ibm,herokuなど)を見繕えばいいだけかと思いますが?

(よくある事故を起こしてくれそうですが(笑))

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

ちょっと厳しいこと言いますが、

時間も環境もひっくるめて全て「投資」です。

なので、数千円程度の投資を惜しんでいる人にまともなアプリが作れるとは思えません。
書籍、幾らしました?現在ある程度勉強を進められてきたようですが、どれくらいの時間と労力をかけました?
ここにきて「無料でやりたい」というのはなぜでしょうか。必要と分かっているからの投資ではないのでしょうか。
私にはその感覚が分かりません。
 
「どうしても」というのでしたら
自宅に公開用のサーバーを立ててやってみると良いでしょう。
レンタルサーバーを借りたりmonacaのようなサービスを利用するのとどちらがコストがおさえられるでしょうね。
 
アプリケーションを作りたいのでしたら、なるべくアプリケーションを作ることだけに集中できる環境を作ることも「必要な投資」なのではないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/27 18:16

    意外と初期投資をどこにおくかって馬鹿に出来ないですよ。楽するという意味ではなくて、本来の目的に対してのウェイトという意味で。
    初期投資部分を的確における人はそのぶん伸びも違います。そこだけは間違えないように気を付けてください

    キャンセル

  • 2019/02/28 07:47

    (管理をしないために手間賃(サービス料金)を支払ってる部分があるんだけどな)

    キャンセル

  • 2019/02/28 18:43

    私もそうです。

    キャンセル

+1

「JavaScriptでモバイルアプリを作る」ということが目的なのであれば、ハイブリッドアプリではなく、React Nativeネイティブアプリを作ってしまう、という選択肢もあります。

とはいえ、これもこれで癖が強い環境であることも間違いありません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る