週末のアプリ作成

androidアプリ個人開発者の実態を報告します。アプリの収入も公開中です♪

プログラミング教育

こんにちは、TF's appsです。

引き続き【プログラミング教育】に紹介します。

今回は【仕様設計】についてです。

  

↓↓興味のある方は関連記事があります

tfs-apps.hatenablog.com

 

tfs-apps.hatenablog.com

 

では本題に入ります。

【仕様】とは・・・

特に、作るものに関し要求する、特定の形状・構造・寸法・成分・精度・性能・製造法・試験方法などの規定。

 

プログラミングの世界においても同様で「要求」に対するソフトの性能と言えるでしょう。

 

 

「ソフトの性能?」

作り手の立場からしたらここまでの性能は保証するというものです。

つまりは品質を保証する条件提示と言えます。

 

使い手の立場からしてみたら安心だと思う条件であり、時には不満と思う条件にもなります。

 

<例1:気に入ったPCゲームがありインストールしようとしたが、説明文を見ると対象OSがwindows8となっている。>

◆作り手の立場

「ゲームが正常に動作できるのはwindows8」までと条件付けをした。

■使い手の立場

安心「windows8ユーザーの場合は動作保証内だ」

不満「windows10ユーザーの場合はなんだゲームできないんだ」

 

<例2:ソーセージを購入。賞味期限が2週間後となっている。>

◆作り手の立場

「美味しく食べれる期間は今日から二週間」までと条件付けをした。

■使い手の立場

安心「二週間までは美味しく食べれる」

不満「1カ月は食べれると思っていた」

 

いずれにしても「仕様」は 製品としての性能を提示する大事なものです。

ここで重要なことはソフトにおいて「仕様範囲内」であるのにその性能を満たさないものは「バグ」となります。

では「仕様範囲外」であるものに対してその性能を満たさないものは「性能?バグ?」どちらでしょうか?

 

仕様範囲外の性能をいかに「仕様設計」するかで性能にもなるし、バグにもなると言えます。

f:id:TFs_apps:20190512093454p:plain

 

では具体例をどうぞ 

 

<例3:デジタル気温計を作って下さい>

(仕様)-10~40度まで計測が可能です

→ 20度で稀に正常に気温が表示できない場合ある(バグ)

→ 41度の時「-41度」と表示してしまう(性能?バグ?)

あなたが作り手だった場合、仕様範囲外だし、41度は「-41度」になっても仕方がないと、使い手に説明できるでしょうか!? 

できませんよね?常識的に考えたらバグになりますよね?

 

<例1>でwindows10ユーザーが誤ってwindow8のソフトをインストールし、以降、PCが全く起動できなくなったら怒りますよね?

 

<例2>で賞味期限2週間のソーセージを15日後に食べて、大病になったら怒りますよね?

 

<例3:デジタル気温計>はどう仕様設計すれば良かったのか?

(要求)デジタル気温計を作って下さい

(仕様)-10~40度まで計測が可能です、範囲外は「ERR=エラー」と表示します。

 →使い手は41度で計測した場合「ERR」と表示され納得できますよね

 

仕様設計においては、性能保証する条件を決定することは勿論大事ですが、性能範囲外をどれだけ想定し設計するかも非常に重要だという事です。

 

仕様はバグと表裏一体と言えます。

 

作り手はいかに仕様設計の段階で「想定外を想像し設計できるか」、これがその製品の性能に大きく関わってきます。

私の経験上、設計者の力量によって大きく変わってくるところです。一人の力で無理なら二人、三人・・・の力を合わせて仕様設計する。これが重要だと考えます。

 

 

如何でしたでしょうか?

今回の記事も【プログラミング教育】について考えて観ました。

 

ではまた次回お会いしましょう♪ 

プログラミング教育 子供 第二弾

こんばんわ、TF's appsです。

今回の記事は【プログラミング教育】【子供】に関する第二弾です。

 

↓↓第一弾の記事も興味があれば見て下さい

tfs-apps.hatenablog.com

 

では早速本題に入ります。

 

ここで1つの問題です。

 

「歩行型ロボットが道路を直進歩行しています」

「この先に十字路があります」

「交差点の向こうまでいけばゴールです」

 

<問題>

ロボットへの命令を列挙せよ

 

f:id:TFs_apps:20190508230120p:plain

 

 

◆皆さんはどれだけシーンを想像できましたでしょうか?

◆目的達成(交差点を超えたゴール到達)までにはどれだけの手順が必要でしょうか?

◆どこまでイレギュラーを想定できますでしょうか? 

if 文を何個作りますか? 

 

【以下一例】

・ロボットは直進できるのか?

・交差点で一時停止するのか?

・正面から障害物は来ないか?

・交差点を超えてどれだけ進めばゴールとするか?

・ロボットの状態は正常(=健康)であるか?

・途中でエネルギー切れはしないのか?

・空から何か降ってこないか?

・道路は歩行できる状態か?

・ゴールまでの時間の制限はないのか?

・・・・などなど

 

・・・

「ん!?」

・・・

 

何が言いたいのか!?

アルゴリズムは無限にある

それがプログラミングの世界

 

最適な手段(=解)は何か?

まずは要求を満たすか否か

要求が曖昧であれば明確に定義する

明確に出来なければ保証できる条件を提示する

 

プログラミングの世界で最も重要なファクターの1つは要件定義であるという事です。つまりは、今回の記事で一番伝えたい事です。

 

色んな事が想定できてもif文の化け物となるプログラム最適とは言えない!!

目的達成までに最低限でかつ最高スペックを想定ができるプログラム(if文の数が最適)ベストであるという事です。

 

上記で プログラミングの世界でと言いましたが...

どんな事でも「人は目的が明確でないと正確な行動はできない」ですよね!?

 

逆に目的(=要求)が明確であれば無駄な行動はしなくて済む。

無駄な行動は排除できて、達成するまでの時間も短くなる。

 

 

ぜひとも学校教育でスタートするプログラミング教育においても「この要件定義の大切さを伝えて欲しい」と切に願う!!

 

なぜ私が最近「プログラミング教育」に関して記事を書くか?

今はまだ幼い自分の子供たちへの未来のメッセージにしたい^^v

 

今、父親として伝えたいことは下記の事である。

「常に目的を意識せよ」

「目的を自身の中で腹落ちせよ」

 

如何でしたでしょうか?

プログラミング教育について考えてみました。

まだまだ伝えたい事は山ほどありますが今回はこれまでとします。

 

それではまた次回お会いしましょう♪

アプリ 名前の付け方

こんばんわ、TF's appsです。

今回は「アプリの名前の付け方」について紹介します。

 

1.アプリ作成の儀式

私がアプリの名前を付ける時、必ずする「儀式」があります。

それはアプリの名前となる単語のトレンドをチェックすることです。

 

せっかくアプリを作るのだからより多くの人にインストールされたいですよね?

 

google先生に教えて頂きます。

Google トレンド」

もうこの大先生に頼りっきりです(^^)

trends.google.co.jp

 

2.使い方

では実際どのように名前を付けたら良いのでしょうか?

私のアプリで一例を紹介します。

「価格比較 どちらがお得 (金額計算アプリ)」

play.google.com

 

このアプリは金額と量を入力して単価価格を求めるものです。

求めた単位価格から商品AとBどちらが安いのかを比較します。

機能面だけを考えると、キーワードとしては「単位価格計算」となります。

 

早速「google先生」に尋ねます

Google トレンド」で検索するとこんな感じです(号泣)

・・・

・・・

「ん!?」

・・・

・・・

「皆無」

・・・

・・・

この名前だと全然インスールされないでしょう

検索してもヒットしないのですから(汗)

 

f:id:TFs_apps:20190506215919p:plain

 

そこで新たなキーワード候補を抽出

「単位価格」「価格比較」「金額計算」

 

その中でも「単位価格」は全くでしたので不採用にしました

 

「価格比較」「金額計算」に絞りました!!

 

f:id:TFs_apps:20190506214515p:plain

 

最終的にはどちらのキーワードも採用しています♪

但し、アプリ名の先頭により検索されやすい「価格比較」を配置するようにしました。

 

これでメガヒット間違いなしです(笑)

 

如何でしたでしょうか?

 

アプリの名前はまさに「命」ですよね。

今回の記事が皆様の参考になればと思います。

ではまた次回お会いしましょう。

 

新人教育 C言語課題

こんばんわ、TF's appsです。

 

今回は私の会社でも新人教育が始まり

講師役として説明している事もあり

【新人教育】【C言語課題】

について紹介したいと思います。

 

私は20年ほど前に初めてプログラムを覚えました。

その言語が「C言語」でした。

 

未だC言語が活躍する場は多く、

私の会社でも機械制御を扱うため

現在もこの言語を主流として使用しています。

 

1.参考書の紹介

20年前に私がお世話になった本を紹介します。

林晴比古さん監修のこのシリーズ

プログラムを1から学ぶには良本です。

読者レベルに応じて、ビギナー編、シニア編などもあり

理解度に合わせて選べます。

私はこのシリーズ本が他の言語も含めて5冊あります。

新C言語入門(スーパービギナー編)新訂 (C言語実用マスターシリーズ) [ 林晴比古 ]

価格:1,728円
(2019/5/5 21:17時点)
感想(1件)

 

 

2.教育内容(課題例)

まずは言語を覚える必要がありますので

一通りその知識があった上での課題とします。

 

私のオススメなのが「標準関数」を作る課題です。

 

・・・

・・・

「ん!?」

・・・

・・・

「例えば、strcpy関数」

自前で実装するという内容です。

 

もちろん、strcpyを使ってはダメですよ(笑)

できれば、可能な限りstrtok、memcpyなど

他の標準関数も使用せずに解くのを推奨します

 

自分でメモリマップを想像し

メモリを確保して、

条件文(例:if、for)、演算子(例:+、-)、

論理演算子(例:&&、||)などを駆使して

解くことがベストです

 

おすすめ理由としては

この課題は一通りの言語知識が入ってないと

解けないですし、何よりゴールが明確です。

 

成果物の確認は、同じインプットをして、

標準関数と同じ結果が得られるかそれだけです。

 

 

3.レビュー

新人さんが複数人いる場合は、ソースレビュー

をみんなでする事をお勧めします。

十人十色、必ずソースコードは異なります。

人のアルゴリズムを知ることは、凄く勉強に

なります。

 

自分の頭の中が覗かれているようで少し良い

気分ではないかも知れませんが(汗)

プロジェクトに入れば複数人で同じソース

コードを共有して作っていく事になりますので

大事なことです。

 

また自分のソースコードを説明する機会を

与えればプレゼン能力も向上します。

まさに一石二鳥です(^^v)

 

さらには不正メモリアクセスなどレビューで

見つける事ができれば、危険なコードを皆で

共有することができます。

 

もっと言えれば、プロジェクトに入れば目的

を達成するだけでなく、保守性の良いコード

も求められます。

他人が読みやすいコードは重要です。

そんなところまでレビューできればベスト

だと思います。

 

如何でしたでしょうか?

【プログラミング教育】について考えてみました。

 

実際私はこのような課題を出している側です。

教師側の立場としてもシンプルな内容で

効率的に教育できるので気に入っています。

 

ではまた次回お会いしましょう♪

 

プログラミング教育 子供

こんばんわ、TF's appsです。

今回はいつも記事とは少しテーマを変えて紹介します。

 

【プログラミング】

【教育】【子供】について考えます。

f:id:TFs_apps:20190504234524p:plain

まず簡単に私の自己紹介から

もしかしたら教育現場にいる方が

この記事を読むかもしれないので(汗)

 

◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇ 

38歳 サラリーマン

情報系大学 卒

プログラミング歴 18年

(組み込み系機械のソフトを設計)

◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇

 

なぜ急に!?テーマ変え?と感じる

読者もおられる方と思いますが、

最近、我が家でこんな1シーンがありましたので(汗)

 

f:id:TFs_apps:20190504234434j:plain

私の子供はレゴブロックが好きでよく作ります

子供が少しイラつく感じでブロックを作っていました

 

 私 「どうしたの?」

 子供「階段がうまく作れない(怒)」

 私 「こう作れば!?」

 子供「そうじゃない」

 私 「でもそれじゃ階段にならないよ」

 子供「いいの、自分でする(怒)」

 

数時間後、ふとっ・・・この時の会話を思い出す

 

プログラミング的な思考で言うと、

 

a.子供の作った階段

(大人では階段とは中々想像できない代物)

 

b.私が作った階段

 

どちらも同じ機能を満たしているので

「正解」でしょう

 

アルゴリズム(手段、解決策)が異なるだけで

やり遂げた答えは同じである

(答え:レゴの人形が階段を昇る事ができる)

 

私の階段シンプルスマート

かもしれない

ただし、全く面白味がない

 

子供が友達と一緒に遊ぶとなった時

どちらの階段が適してるのか?

 

・・・

・・・

答えは言うまでも無い

・・・

・・・

 

ただし、私の階段もシーンが異なれば

適している場合がある

 

そう、プログラミング的な思考で考えると

「機能さえ満たしてれば全て正解」と言えるでしょう

 

 

絵画として分かり易い

f:id:TFs_apps:20190505000448j:plain

同じテーマを与えて子供が一斉に描く

十人十色

色んな視点から絵を描き答えを導き出す

テーマの絵が描ければ「正解」である 

 

プログラミングも同じである

コンピュータに命令をする事さえ

満たせれば答えは無限にある

 

私の個人的な見解ではあるが、

プログラミング教育とは

「目的を達成する手段を」

「いくつも考える力」

これを学ぶ「機会」というのを

与える事ではないのか?

 

確かにITが日常化している

昨今においては「スキル」として

勉強する必要もあるだろう

 

しかしそれだで良いのかと考えてしまう

 

なぜなら日本の英語教育はまさに

スキル重視で進んでいないでしょうか?

(現在はどうか分かりませんが・・・)

 

少なくとも私は旅行で海外に行った時

旅先で「言葉が出てこない」という事で

困った経験をした一人です

 

英語の目的

外国人と話す機会を増やし会話から

文化交流する手段ではないのか?

 

プログラミング教育

目的(ゴール)は何か?

「プログラム」や「IT」など

リテラシーを高めれば満足なのか?

 

私はアルゴリズムを養い

目的達成の術を複数兼ね備え

シーンにあった最適手段を

導き出す事だと考えます。

(コンピュータの世界だけでなく)

(考える力、自己解決力を養う事) 

 

良いのか悪いのかは別として、

自身の子供には日常的に

このように声を掛けています。

「ただの作業になってはダメ」

「目的を考えて行動して」っと。

 

如何でしたでしょうか?

 

「プログラミング教育」における1つ道しるべとなれれば幸いです。

本件の記事、教育においては全くの素人が書いていますのでご了承下さい。

 

今回のような「いつもと違った記事」も今後考えて行こうと思います。 

ではまた次回会いましょう♪

 

アプリ収入 個人開発 経過報告2

こんにちは、TF's appsです。

今回はアプリ収入定期報告(2019年4月)です。

 

前回の定期報告(2019年2月)から

2カ月が経ちましたので続きを報告します。

 

平成 最後の成績発表です。 

 

↓↓↓ 以前の収入報告(興味のある方は参考にして下さいね^^)

tfs-apps.hatenablog.com

 

ずっと右肩上がり単月の収入

増えていました!!

このままずっと行くのかと思いきや

 

いや~世の中

そんなに甘くはないですね(汗)

まだまだ努力が足りません。

 

もう新作のアプリを

1年間リリース出来ていません。

そこが問題だと認識しているのですが

時間の確保に苦労しているのが現状です。

 

前置きが長くなりましたので

さっそく結果報告しますね♪

 

f:id:TFs_apps:20190502131938p:plain

 

2019年3月 

 ▶▶▶ ¥1,373-

 

2019年4月 

 ▶▶▶ ¥1,850-

 

 う~ん・・・

全く伸びないですね(涙)

 

2018年11月の

単月「¥3,000-」のドリームから

・・・

・・・

沈黙 

・・・

・・・

ただ~し

・・・

・・・

 

★☆吉報☆★

 

も実はあります。

 

1つ目は

【昨対比(%)】です。

2019年3月 

 ▶▶▶ 5,492%

      (2018年3月:¥25-)

 

2019年4月 

 ▶▶▶ 2,466%

      (2018年4月:¥75-)

 

恐ろしい伸びです。

もし事業をしていたら

億万長者になってそうな

昨対比ですね(汗)

 

去年の今頃 私の戦闘力は

単月平均「¥50-」でした。

ドラゴンボールの初見ヤムチャレベルです)

 

 

2つ目は

【支払い基準金額¥8,000-】

【になるまでの期間】です。

 

1回目のは2018年11月締めでした

なんとその期間

2017年4月~18年11月

20カ月(涙)

アプリ開発をスタートしてから

1年8カ月です(汗)

 

くぅ~長い道のりでした

しか~し

第二回目は2019年4月締めです

2018年12月~19年4月

なんと

・・・

・・・

★☆5カ月☆★

・・・

・・・

なんと4倍のスピード

界王拳4倍だぁぁ~

 

 じわじわですが、

インストール数も増えて

いますので母数が増える

広告収入比例していきます。

 

如何でしたでしょうか?

これからも引き続き

アプリ個人開発者の実態を

報告していきますね^^v

 

また次回お会いしましょう♪♪

この記事を読んだアプリ開発者にとって

良いことがありますように。

 

◆◆TF's apps  HP◆◆

tfs-apps.jimdofree.com

 

個人ゲームアプリ

こんにちは、TF's appsです。

今回は「個人ゲームアプリ編」ということでペンを取ります。

 

ツール屋の私

唯一作成したゲームアプリについての記事です。

 

「ミサイルシューティング(育成 弾幕 シューティングゲーム) Barrage Fighter」

https://play.google.com/store/apps/details?id=tfsapps.barragefighter

 

f:id:TFs_apps:20190421113810p:plain

について今回は紹介をします。

 

私のアプリ開発史上

コスパ最低のアプリとなっています。 

 

 ◎開発環境と言語

 ▶▶android stadio JAVA

 (Unityは使用していません)

 

◎作成時間

 ▶▶40時間

(仕事終わりの開発ですので

約1カ月半~2カ月程度かかった記憶です)

 

◎現在の検索位置

「ミサイルシューティング」とすれば

 ▶▶上位2位

「シューティング 弾幕」とすれば

 ▶▶上位35位

 

◎DL数(2017年11月公開)

 ▶▶200DL

 

◎収入

 ▶▶¥97-(涙) 爆死!

 

 

う~ん・・・・

 

まぁこんなものでしょう。

一度プレイした人にはわかりますが

まぁ仕方が無いでしょう

 

クオリティを考えれば

この結果は仕方がない

 

 

ただ・・・

 

このアプリは私の中で一番

夢中になった

 

アプリを作るのが

楽しかった

 

 もともと私は

ゲームで遊ぶのが好きです

少し外れましたが

今の職業にもその想いがあった

から就いています。 

 

現在は組み込みソフトの

エンジニアをしていますので。

 

作っていて楽しいアプリ…

それがこのシューティングゲームアプリでした。

 

いつもの感じでゲームをプレイして

ゲームアプリが一つ作れたのだから

プラスと考えればよいでしょう♪

 

またこのゲームアプリには

大変な困難が待っていました。

 

ゲームを一人で作るのって本当に

大変ですね。

技術力の塊

と私は思います。

 

 

Twitterなどで知り合う

個人開発の皆さん尊敬します。

(これは本当に)

 

また別の記事で書こうと思いますが

 

何よりもソース(音、絵)を探すのが

大変でした。フリーのもので。

 

また技術的なスキルも必要でした。

・ストーリー

・当たり判定

・BGMや効果音

・ゲームバランス

・画面描画処理など

 

このゲームアプリ1本だけで

スキルは向上したように思います。

 

この成長こそ

またゲームアプリ作成の魅力ですね

 

 いかがでしたでしょうか。

今回の記事は個人開発のゲームアプリ

についての実態報告です。

 

今は次のゲームアプリを考えています。

またいつか報告します。

 

それではまた次回お会いしましょう^^v