高校生が開発するということ

# はじめに

この記事は、Qiita Advent Calendar 24日目の記事です。
以下の記事より、すべての記事をご覧になれます。

https://qiita.com/0_terarin_0/items/0f367210e2465f7772c9

# 筆者について

- 現在高校２年生
- 水泳部マネージャー
- 生徒会長
- とある団体の代表

# 本編　

さて、最近は学生の頃からパソコンを持っていることが多いです。かくいう僕も、学校でMacbookかiPadの購入をする必要があり、我が家ではMacbookを購入しました。そして、その前からずっと別のロボットプログラムを組んでいたので、プログラミングを始める流れとなりました。しかし、練習環境というのなら問題ないですが、これを実際にサービス運営したりするというのならさまざまな壁が立ちはだかります。ちょっと下にあげてみましょうか。

- App Storeに登録するのが面倒
- 各種サービスの支払い
- 全ての環境には対応できない
- 時間が限りなく少ない
- 責任問題
- 経済力が小さい

ちょっと考えただけでもこんだけあります。ということで、あげ始めたらキリがないので①金銭的な面、②責任問題、③開発環境の3つについて今回どのように解決したかについて記したいと思います。

## ①金銭的な面

さて、この金銭的な面ですが、これはサービスを実際にローンチする前の問題です。特に問題になるのが支払い方法です。サービスをリリースするにあたり利用するクラウドを利用する場合、特段大きな金額を使うことがなかったとしてもクレジットカードの利用を避けることはできません。

引用元：[Google サービスのお支払い方法 - Cloud Identity ヘルプ](https://support.google.com/cloudidentity/answer/1230192?hl=ja)　（Google Cloud）

![Screenshot 2023-12-25 at 10.55.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/f50b0ced-1d84-94f2-5226-436b12401137.png)

引用元：[アカウント・請求関連のご質問](https://aws.amazon.com/jp/aws-jp-faq/)　（AWS）

![Screenshot 2023-12-25 at 10.59.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/3805b0c4-ac0e-63fe-4c97-d8340ed3daaa.png)

引用元：[支払い方法を追加、更新、または削除する - Microsoft Cost Management | Microsoft Learn](https://learn.microsoft.com/ja-jp/azure/cost-management-billing/manage/change-credit-card)　（Microsoft Azure）

![Screenshot 2023-12-25 at 11.02.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/22718ca5-4231-1a7d-3aad-53801d59f6b8.png)

ここでよく利用されるのが「LINE Pay VISA プリペイドカード」ですが、個人的にはお勧めしません。なぜなら、プリペイドカードは決済が承認されないことがあるからです。[^1]なので、個人的には**銀行口座の開設とデビットカードの利用**をお勧めします。ちなみに、個人的におすすめなのは、まとめてお金を入れるときは住信SBIネット銀行、小銭も入れたい時はauじぶん銀行です。僕の場合は、住信SBI銀行を利用していて、サービスの利用の運営にかかる費用（印刷費とかも含む）は全てここで管理しています。

引用元： [デビットカード | 商品・サービス | NEOBANK 住信SBIネット銀行](https://www.netbk.co.jp/contents/lineup/debitcard/)

![Screenshot 2023-12-25 at 15.48.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/583428/81ebf90b-8f14-8400-7a6c-fad54c9f2978.png)

## ②責任問題

続いて責任問題についてです。「責任？」ってなりますよね。めっちゃあります。せっかくなので、ちょっと賢くなったGoogle Bardに聞いてみました。

> Q：日本においてソフトウェアを公開する際に考慮しなければいけない法令をすべてあげてください。

> A：日本においてソフトウェアを公開する際に考慮しなければいけない法令は、以下のとおりです。
>
>著作権法
>特許法
>商標法
>不正競争防止法
>児童ポルノ禁止法
>個人情報保護法
>情報セキュリティ基本法
>サイバーセキュリティ基本法
>これらの法令は、ソフトウェアの著作権、特許権、商標権などの知的財産権、不正競争行為、児童ポルノ、個人情報の保護、情報セキュリティなどの観点から、ソフトウェアの公開を規制しています。
>
>具体的には、著作権法は、ソフトウェアのソースコードやオブジェクトコードなどの著作物を保護する法律です。特許法は、ソフトウェアの発明を保護する法律です。商標法は、ソフトウェアの名称やロゴなどの商標を保護する法律です。不正競争防止法は、ソフトウェアの模倣や盗用などの不正競争行為を禁止する法律です。児童ポルノ禁止法は、児童ポルノの作成や提供を禁止する法律です。個人情報保護法は、個人情報の取り扱いを規制する法律です。情報セキュリティ基本法は、情報セキュリティの確保を図るための基本方針を定めた法律です。サイバーセキュリティ基本法は、サイバーセキュリティの確保を図るための基本方針を定めた法律です。
>
>ソフトウェアを公開する際には、これらの法令を遵守することが重要です。違反した場合は、民事・刑事上の責任を問われる可能性があります。
>
>以下に、各法令の概要を説明します。
>
>著作権法
>
>著作権法は、文学、音楽、美術、映画、写真、プログラムなどの著作物を保護する法律です。ソフトウェアは、著作権法の保護対象となる著作物です。ソフトウェアの著作権を侵害する行為には、著作物の無断複製、改変、公衆送信、譲渡などがあります。
>
>特許法
>
>特許法は、発明を保護する法律です。ソフトウェアの発明は、特許法の保護対象となる可能性があります。ソフトウェアの発明として認められるためには、新規性、進歩性、産業利用可能性の要件を満たす必要があります。
>
>商標法
>
>商標法は、商標を保護する法律です。ソフトウェアの名称やロゴなどの商標は、商標法の保護対象となる可能性があります。商標権を侵害する行為には、他人の商標の無断使用、類似商標の使用などがあります。
>
>不正競争防止法
>
>不正競争防止法は、不正競争行為を禁止する法律です。ソフトウェアの模倣や盗用などの不正競争行為は、不正競争防止法の規制対象となります。
>
>児童ポルノ禁止法
>
>児童ポルノ禁止法は、児童ポルノの作成や提供を禁止する法律です。児童ポルノに該当するソフトウェアの作成や提供は、児童ポルノ禁止法に違反します。
>
>個人情報保護法
>
>個人情報保護法は、個人情報の取り扱いを規制する法律です。ソフトウェアで個人情報を収集・利用する際には、個人情報保護法の規定を遵守する必要があります。
>
>情報セキュリティ基本法
>
>情報セキュリティ基本法は、情報セキュリティの確保を図るための基本方針を定めた法律です。ソフトウェアの開発・運用においては、情報セキュリティの確保に努める必要があります。
>
>サイバーセキュリティ基本法
>
>サイバーセキュリティ基本法は、サイバーセキュリティの確保を図るための基本方針を定めた法律です。ソフトウェアの開発・運用においては、サイバーセキュリティの脅威に備える必要があります。

厳密には全てを網羅できているわけではないとはおもいますが、それでもこれだけあるので、かなりの注意が必要です。そこで僕が行ったことは以下の通りです。

- プライバシー保護方針の作成
- 利用規約の作成
- 考えうる限りにのセキュリティ対策
- サービス名を考えるときに検索ワードにヒットするかどうか検索

できることはなんでもしたっていう感じですが、正直これでも足りるかどうか怪しいです。なので、たとえば扱う個人情報は最低限にしたり、不安なところは外部サービスに頼ったりすることが大事だと思います。

## ③開発環境

これは、僕がかなり苦戦している問題です。経済力がないが故に、開発の大部分をエミュレーターに頼っています。

- 実機で対応できているもの（iOS/macOS）
- 仮想環境で対応できているもの（Linux_aarch64/Android/Windows_aarch64）
- 全く対応できていないもの （Linux_amd64/Windows_amd64）

特に一番下のところについて、多くのWindows機がAMD64であるにも関わらず全く試すことができていません。これはアプリをリリースする上でかなりの問題となるため、乗り越える必要があります。ここで、かなりの有効だとなるのが、クラウドコンピューティングでVMを一時的に立ち上げて検証する方法です。できるだけ稼働時間を少なくしたり、起動していなくても課金される場合にはシャットダウンしておく必要があるためだいぶ面倒ではありますが、これは我慢するしかありません。

また、もう一つの問題が「家だとWi-Fiが弱い」であったり「親からの理解を得ずらい」といった問題です。ようは、家庭の理解が少ないということですね。これは本当に大きな問題です。対処方法はいろいろあるとは思いますが、僕の場合はスターバックスで作業を進め、またWire and WirelessのWi2 300を利用しています。が、これは非常に大きな問題でかつそれぞれのケースに対して対処法はかなり変わってくると思いますので、自分が考えうる限り最善の解決方法を考えて、やってみましょう。

# 最後に

本日は高校生がサービスを開始する上で苦難となることとその対処法について語りました。正直言って難しいです。リスクも高いです。しかし、それを取るか取らないかも含めて人生です。なので、自分が今一番できる最善の方法について考えながら行動していくことが何よりも大事です。ちなみに、僕は「やらないよりやろう」派なので、失敗もありますし大きな問題になりうるであろうこともたくさんあったりしますが、それを繰り返さないようにしています。高校生の方々もぜひチャレンジしてみてはいかがでしょうか。それではあと1日、アドカレ 23 の記事をお楽しみにしてください。

https://qiita.com/0_terarin_0/items/0f367210e2465f7772c9