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

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

ただいまの
回答率

90.35%

  • C

    4951questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • C++

    4785questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • teratail

    450questions

    teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

初心者からアプリを製作するためにおすすめの言語や教材はありますか。【Kindleのような読書アプリを検討しています】

解決済

回答 5

投稿

  • 評価
  • クリップ 2
  • VIEW 759
退会済みユーザー

退会済みユーザー

お世話になります。

私は、Kindleで本を読むようなアプリを製作したいと考えています。

これまでWebサイトで様々な試みをしてきましたが、本当に快適な読書体験を提供することを考えると、ブラウザではなく、KindleやBookLiveのような読書アプリを製作することが一番だと感じるようになり、Webサイトではなくアプリ開発に興味を持つようになりました。

しかし、私にはアプリに関する知識がまったくないため、とても初歩的な疑問かもしれませんがご質問させて下さい。

Udemyなどのオンラインコースや書店でプログラミングに関する書籍を探すと、アプリを製作するための様々な教材が用意されていたのですがどこから始めるべきか分からず、またゲーム開発がメインとなっているものが多く、私のような初心者がその他のアプリを製作するための知識が学べるのか分からずに迷っていました。

アプリ製作をされたことのある方は、どのようにそれらのスキルを習得されたのでしょうか。
私のようなWeb製作の言語(html、css、js、phpなど)しか触れたことのない初心者が、アプリを製作するために必要な知識やぴったりな教材、また体験談がありましたら教えていただけると嬉しいです。ゆっくりと時間をかけながら、しっかり学んでいくつもりです。

どうぞよろしくお願いします。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • m.ts10806

    2019/01/25 11:03

    過去質問が何も参考にならなかったということでしょうか。

    キャンセル

回答 5

+8

恐らく懇切丁寧な回答が付くとは思いますが、私から言えることは、現時点で目的に直接結びつかなそうな基礎学習であっても、忌避してはいけないということです。山は一合目から登るべきです。ヘリコプターで、頂上と言わずとも七合目あたりに降り立とうと考えるべきではありません。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/01/25 11:04 編集

    > 山は一合目から登るべきです
    まずはその山がどんな山かを調べて適切な装備を揃えることも必須ですね。
    富士山なんかはルートによっては1合目がえらく高い場所(1400m付近)にありますし、10合目が山頂かというとそうでなかったりもします。
    山によって登り方や装備が違ってきますしね。海外か国内かでも。

    キャンセル

  • 2019/01/25 11:54

    mts10806さん、フォローありがとうございます。そうですね、語彙力不足で申し訳ないです。私が言いたかったこともまさにその通りです。

    キャンセル

+3

本当に快適な読書体験を提供することを考えると、ブラウザではなく、KindleやBookLiveのような読書アプリを製作することが一番だと感じるようになり

それは何故?
あなたは本当にフロントエンドの真髄まで極めたと言えるの?

これは別に意地悪で言ってるわけではありません。
これは貴方が貴方自身に問いかけるスタートラインになるべきだと判断しました。

考えて考えて、考え抜いてください。
このスタートラインが間違っていたら、貴方の言っている「読書アプリを製作することが一番」という結論はただの寝言です。
しかし、こういう直感というものは不思議と理屈を越えた先で正しいということが多いです。
ビビって取り下げるような事はしないほうが良いでしょう。


私はこの問いに対して、Webサービスは書籍をDLする所から始まる。
電車やトンネル等で気軽に開いたり閉じたりして通信が途切れたときの制御が難しい。
だったらはじめから書籍のデータはローカルのストレージ内に放り込んでしまった方が楽ではないかと考えた……
というシナリオを想像しました。

しかしこれは、私がJavaScript+ブラウザの限界が大体どのへんにあるのかという経験則から言ってるだけの話であり
質問者さんが流されて頷いても本当に現状の不満がそこにあるのか否かは誰にもわかりません。
後から思ってたのと違うという感想を抱く可能性は非常に高いと見ています。

なので思ってたのと違うと感じたのであれば、
何故そう思ったのかを言語化する努力は継続してください。
そして適切な改善方法を考えていかないと、一生思ってたのと違うを繰り返すだけで何も作れない人間のまま一生が終わることでしょう。


というわけで一旦はElectronへ行き
Node.jsに慣れつつElectronでのアプリ開発を勉強すべきでしょう。

ElectronはJavaScriptの部分をNode.jsに置き換えただけのWebアプリのローカル版として機能します。
画面の表現に使うのはChrome互換のChroniumであり、HTML・CSS・JSといった普通のWebアプリを作るのと同じような感覚でアプリを開発していくことになります。

唯一違うのがJavaScriptの部分がNode.jsであること、
JavaScriptではできなかった自由なローカルファイルの読み書き、Ajaxに縛られない自由なインターネット接続、C言語等で作られた高速なライブラリの力を借りることが出来る…などなどです。

もし最終的に「だったらElectronでなくて、普通のWebアプリでええやん」と結論が出たとしましょう。
その時、Electronで培ったNode.jsの扱いやHTML・CSSの技能はそのままWebアプリ開発へ持って帰れます。
Javaの思想で「Write once, run anywhere」がありますが、その技能版といった形でHTML・CSS・JSは色んな所に持ち込んで実力を発揮することが可能です。

スマホもWebViewというHTML・CSS・JSをスマホアプリとして動作させる機能が存在しているため、
Electronで培った技術は活かせるでしょう。
速度面での不満を抱えてから改めてKotolinやSwiftといった言語に手を出しても十分だと思います。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+3

C, C++のタグがついていますが、どちらも知らないのならprintfでhello worldするところから始めて、言語の基礎がわかるくらいになってから取り組むしかないんじゃないでしょうか。

冗談とか嫌味ではなく、過去の質問とかを見ると経験値が低そうなので、もう少し経験を積む、プログラミングに慣れる、ツールや言語に習熟して使いこなせるようになる、という体験を一度してみないことには何も作れないと思います。

そういう意味では、他の回答者の方の「とりあえず今持ってるWeb系の知識と技術でやれば?」という回答も正当です。もっと言えば、「とりあえずWebブラウザでやれるところまでやれば良いんじゃない?」でも良いですね。

なお、何のアプリなのか(「アプリケーション」というだけではPC向けもスマホ向けもありえるし、スマホもiOSとAndroidでだいぶ事情が違う)は質問文から読み取れなかったので、C, C++が妥当な選択なのかはまったくわかりません(ただし、CやC++が「アプリケーション開発」で「妥当な選択」になるケースは減ってきていると思うので、確率的には妥当ではない可能性のほうが高いでしょう)。

逆にプラットフォームが決まれば選択肢はそんなに多くはないはずなので、半自動的に決まりそうなものですけどね。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

checkベストアンサー

+2

Web製作の言語はどう学んだのでしょうか?
どの言語・ソフトでも基本は変わらず、最初の手順は
「開発環境構築→Hello World→ビルド→本格的なプログラミング」です。

個人的には、本当に初めてかつネイティブアプリ開発をしたいならiOSなら「Xcode」、Androidなら「Android Studio」をオススメします。
もちろん別の方法も色々あるのですが、とりあえずこれらでHello Worldとビルドまで進めて、それから別の方法も考えるのがベターかなぁと思います。

自分は「ひたすらGoogle検索」スタイルの学習なので具体的な教材のオススメは出来ないのですが、教材としては「自分が理解出来ると思ったもの」「自分の作りたいものに近いもの or 本当に初歩的な内容」でいいかと思います。


実際にどの言語・ソフトが最適かは要件によります。
今回なら「『本当に快適な読書体験』とは何か?」という点です。

それは本当にアプリなら実現可能なのか?
ネイティブでないと出来ないのか? 別言語でもいいのか? 簡単に出来るライブラリはあるのか? などなど、色々確認が必要になってきます。
それに内容によっては、もしかしたら何らかの(多くの場合アプリ配信ストアの)規約違反になってしまったり、もしかしてもしかするとKindleの特許の侵害になってしまうかもしれません。

もちろん「学習目的のみ、リリースはしない」ということならこの辺は緩和されると思うので、とりあえずやってみるというのもアリだとは思います。
一通りやってから「うん、これは違うな」というのも経験の1つになるとは思いますので。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+1

Kindleで本を読むようなアプリを製作したいと考えています。

プログラミング初心者がKindleアプリのようなものを製作するのは、できないとは言いませんが、はっきり言って無謀です。

使いやすいアプリというのはそれなりの努力の賜物であり、一般的には素人さんが簡単に作れるものではありません。

ただし、アイデアは別です。そのアイデアをプログラムで実現する力はないけど、アイデア力だけは人には負けないというのであれば、そのアイデアを実現できる人を探してコラボすればいいと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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

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

  • C

    4951questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • C++

    4785questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • teratail

    450questions

    teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

  • トップ
  • C++に関する質問
  • 初心者からアプリを製作するためにおすすめの言語や教材はありますか。【Kindleのような読書アプリを検討しています】