週末のアプリ作成

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

私がプログラミングでハマったコードを紹介します。auto変数初期化忘れ

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

今回の記事は【プログラミング】ノウハウ的な紹介です。

実話です。(ご好評につき!?第二弾です)

 

私は組み込み系のソフト設計を約15年しています。

過去こんなソースコードでハマっています。

 

◆簡単にサンプルコードを記述します

f:id:TFs_apps:20190717223613p:plain

 

ポイントは【auto変数である[a]が初期化されていない】ところです。if(Z==TRUE)の条件に入らない時に不定値を返すことになります。

 

<補足>

・私が作ったわけではありません。先人のコードです。

・ソフト全体としては最低数十万ステップになります。

・現象は突然アプリが落ちるという内容です。

・発生頻度は稀であるという情報です。

 

 

調査していく中である操作をすると確実に再現することが分かりました。

そうメモリ使用状況によって現象が発生したり/しなかったりします。

 

このプログラムの欠陥は、

設計時にauto変数[a]の初期化を忘れている事にあります。

 

対策としては、auto変数[a] を初期化することで修正しています。

 

一番伝えたい事

auto変数だけでなく、グローバル変数も同じですが、変数は必ず初期化するべきです。

 

サンプルコードのように仮に【if(Z==TRUE)】の条件がなくても、初期化することをお勧めします。なぜなら、可読性が良いからです。auto変数が関数のトップで初期化されていると、初めてそのコードを読む人にとっては読みやすいです。例えば、グローバル検索してfuncAの下の方にジャンプして、解読していく中で、ふと「変数aの初期値は?」と考えることがあるでしょう。

 

また今後どんな処理が追加されるか分かりません。その時の事を考えて、初期化することが望ましいでしょう。

 

私の持論ですが、今の時代、ソースコードにはテクニック(メモリを最小に抑えた、ステップ数が少ない、処理速度が数μsec速いなど)は不要です。低スペックマシンのソフトにおいては必要だったでしょう。

今の時代に必要なのは、可読性(=保守性が高い)でしょう。安心安全なソフトが一番大切と考えます。

 

 

いかがでしょうか。今回は自身がハマったコードについて紹介しました。このシリーズはそんなに読者の反応が良くないですが、今後も紹介もしていきますね^^v

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

 

 

身近なところにあるプログラムについて考える

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

今回の記事は【身近なプログラム】について考えてみます。

 

いつも私の記事を読んでいる方にしたら

 

なぜ!?

どうしたTF's apps?

 

と思っていただける方もいらっしゃるかもしれませんが、

妻との日常会話でこんなやりとりがあったので。

 

f:id:TFs_apps:20190715110129p:plain

 

 私「梅雨だし浴室乾燥するんだけど」

  「1時間くらいかな?」

 妻「う~ん、45分で良いんじゃない?」

 私「え!?45分は設定できないな」

  「10分刻みの設定だし、ソフト変えないとね」 

 妻「そんなのにソフトがあるの?」

 私「あるやん(・・・・驚愕)」

 

そう、ソフトのイメージは

PCのワードやエクセル、スマホのアプリだという認識なのです。

 

でも、改めて考えると

普通の人はそんな感じなのかな?と思いました。

 

普段、仕事では組み込み系のソフト、家ではスマホアプリを作っている私にとっては当たり前すぎて、妻のような感覚は全くないのです。でも、プログラミングをしない人にとってはそれくらいの存在なのでしょう・・・。

 

今や至る所に誰か作ったプログラムのソフトが動いている世の中なのにね。少なくとも電気で動くものは何かしらのソフトが搭載されているでしょう。

 

以前、私は「なぜアプリ開発を続けるのか?」 という記事で紹介したように、私は下記のように感じます。

 

父親が本業でも趣味でもしている事、

プログラミングは日常にあり、

そして便利な世界を創っている、

 

子供たちに教えていきたい、

世の中の便利は当たり前ではない、

日夜や誰かが活動している結果である

 

 

 

アプリ作成やブログ活動など、自分の子供たちがITに触れ出した時、父親の活動を見て貰えるように、これからもコツコツと活動していきます。 

 

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

 

アプリ作成を始めて1年目の広告収入を報告します

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

今回の記事は【アプリ収入(1年目の年収)】について報告します。

 

気が付けば、アプリ作成を始めて約3年が経とうとしています。

 

今回の記事はアプリ開発を始めて1年目の年収を報告しますね。

副業を考えておられる方やアプリ作成に興味のある方はぜひ参考にどうぞ^^v

 

◆◇報告の前にお断り◇◆

この収入は私個人のデータです。参考程度に見て下さい。

個人開発をされている方、すべてが同じ結果ではありませんので。

 

 

まずは、現時点の収入から

 月収¥1,500- くらいです。

 

 

↓↓こちらの記事を見て頂ければ詳細が分かります☆

先月の収入報告

令和最初の収入報告

平成最後の収入報告


前置きはこれくらいにして・・・

ではさっそく結果をどうぞ!!

 

1年目の年収

▶▶▶ ¥402-

 

推移のグラフです

f:id:TFs_apps:20190713210300p:plain

 

見ての通り、

よゐこの濱口さんも驚愕するでしょう♪

 

9カ月間

0円生活です(涙)

 

 

アプリを作ろうと決心して

調査や開発環境の構築など、

何かしらの活動を始めたのが2016年9月からです。

 

下記の初号機アプリを作り終えて、

Google様の広告を貼れるようになったのが同年の11月でした。

 

防犯アラーム&助けてメール送信(現在地付き) Plus 災害や犯罪対策

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

f:id:TFs_apps:20180803224330p:plain

 

 

 全くインストールされずに

試行錯誤していた数カ月があります(笑)

 

 

そして、ついに初クリックによる

広告収入があったのが2017年6月です。

 

 

この初クリックがあるまでに

何度「AdMobのマイページ」で現時点の広告収入を確認したことか・・・う~ん、思い出すだけで泣けてくる。

 

良くも悪くも、これが私の実力です。

これだけ見たらアプリ作成が大変そうに思いますが、

私自身は楽しみながらコツコツしていたので全く苦痛ではありませんでした。

 

むしろアプリの作り方がわかり凄く充実した日々を過ごしていたと振り返ります。

引き続き【週末のアプリ作成】を続けていきます。

 

次回は2年目の年収を報告しますね~

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

 

私がプログラミングでハマったコードを紹介します。無限ループ

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

今回の記事は【プログラミング】ノウハウ的な紹介です。

実話です。私が本業で1週間苦労したコードを紹介します。

 

私は組み込み系のソフト設計を約15年しています。

つい3カ月程前にこんなモンスター(バグ)と遭遇しました。

 

◆簡単にサンプルコードを記述します

f:id:TFs_apps:20190708223744p:plain

 

ポイントは【for文が無限ループ】である点です。

funcBの戻り値が0の場合は無限ループします。

 

<補足>

・私が作ったわけではありません。先人のコードです。

・funcBの戻り値は「正常時が1以上」or 「異常時が-1」の想定です。

・ソフト全体としては最低数十万ステップになります。

リアルタイムOSで動作しています。

・現象は突然フリーズするという情報しかありません。

・発生頻度は稀であるという情報です。

 

 

今回発生した現場では、まさに「戻り値が0」となってしまい、無限ループすることによりアプリがロックするという現象となりました。

 

funcBはデバイスからのデータ受信を行う関数です。

正常にデータを受信すれば「戻り値=1以上」となります。

異常時(デバイスが未接続など)は「戻り値=-1」となります。

 

今回デバイスに対して電気的なノイズがかかり、そのデバイスが瞬断(OSレベルで切断→再接続)しました。

その結果、「戻り値=0」になり続ける現象となりました。

これにより無限ループすることになりました。

 

 

このプログラムの欠陥は、

設計時にfuncBの戻り値が「0」になり続けるという想定が出来なかった事にあります。

 

対策としては、

funcBの「戻り値=0」が5回続けば、ループを抜けるという処理に変更しています。

 

 

一番伝えたい事

無限ループを使用する場合は、本当に無限で良いのかを検討すべきです。今回のような通常処理がループから抜けることを前提としている場合において、無限ループにする必要があるのかという点を考慮して設計するべきです。

 

 

いかがでしょうか。今回は自身がハマったコードについて紹介しました。またこのシリーズの紹介もしていきますね^^v

 

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

ドメインを取得したら Google AdSense の審査に落ちました。その時の対策を紹介します。

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

 

今回の記事は【Google AdSense 審査】について紹介します。

 

令和になってすぐに【Google AdSense】に申請したら、数十分で合格しました。

ブログを始めて約1年で記事は25個ほどでした。

 

こんなに簡単に合格するとは思ってなかったので、少し拍子抜けした事を覚えています。アマゾンアソシエイトには5回ほど申請して落ち、最近は申請していませんが、まだ合格したことがありません。そんな過去があったから、すぐに通るとは思っていなかったのです。

f:id:TFs_apps:20190707130438p:plain

 

 

しかし、この幸せはつかの間でした...

 

この後、個人的な理由で「はてなブログ」を「pro」に変更しました。

それに伴い【お名前.com】でドメインを取得したんです。

 

こうしてブログ環境が整いました、URLの変更に伴い、

もう一度、Google AdSenseに申請しようと決断。

すると、google様からは、

 

「不合格」という結果

 

これはかなり以外な結果でした(涙)

ドメインを取得しただけだし、すぐに通ると思っていたのに・・・

しかも申請してから10日間くらい結果が来るのに時間を要しました。

 

その時のメールです。

f:id:TFs_apps:20190707131707p:plain

 

不合格の詳細を確認しました。

ドメインを切り替えてからの日が浅い事

・記事が数個しかない事

ずばりの答えはありませんが、これらが原因と推測しました。

 

その後もう1回落ちているのですが、それは対策せずにすぐに「再申請」してしまい、また同じ不合格通知がきています。

 

そこでドメイン切り替え後に具体的にとった対策です。

 

ドメインを切り替えてからの日が浅い事

 →40日くらいおいて再申請

 

・記事が数個しかない事

 →10個くらい作成 

 

対策すると、もう一度合格することが出来ました☆

ドメイン取得後にすぐに申請するのは良くないのですね。

そのドメインに対する信頼がないですしね。

冷静に考えると分かりますが、猪突猛進で進めてしまったから不合格になったんだと思います。

 

<経緯>

1回目申請 5月  3日 合格 (結果通知は数10分後)

 ↓

はてなブログをproに変更、ドメインを取得

 ↓

2回目申請 5月27日 不合格(結果通知は10日後)

3回目申請 6月  4日 不合格(結果通知は7日後)

4回目申請 6月27日 合格  (結果通知は1日後)

 

 

いかがでしょうか、今回は自身が苦労したGoogle AdSenseの審査について紹介しました、同じ悩みがある方の参考になれれば幸いです。

 

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

ブログに役立つスクリーンショットツールを紹介します。Snipping Tool

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

 

今回の記事はツールの紹介をします。

スクリーンショットが簡単にできる【ツール】の紹介をしたいと思います。

 

ご存知の方も多数いらっしゃると思いますが、

Snipping Toolというツールです。

 

私も身近に使用しているのですが、

会社でこのツールがインストールされていないPCを使用する機会があって、改めてこの便利なツールに敬意をはらい、これからも大切に使わせて頂こうと思い、紹介しようと決断しました^^v

 

最近のwindows PCならプリインストールされています。 

 

普段から何気なく使用しているこのスクリーンショットツールですが、

数年前までは、PC(windows)でスクリーンショットを取って、必要な部分だけトリミングするのは結構面倒でした。

 

<昔の方法>

1. 撮りたい画面で「alt」 + 「PrintScreen」キーで画面キャプチャ―する。

f:id:TFs_apps:20190706000108p:plain

2.ペイントにキャプチャーを貼り付けて、トリミングする。

f:id:TFs_apps:20190706000237p:plain

 

 

 

Snipping Toolを使う方法>

1.Snipping Toolを起動して、新規作成ボタンを押す。

 f:id:TFs_apps:20190706000455p:plain

 

2.撮りたい画面を直接トリミングする。

f:id:TFs_apps:20190706000532p:plain

 

 

 

めっちゃ便利ですよね、

使えばわかるのありがたさ!!

 

こんな便利と思えるアプリを作りたいと思います。

もし、この記事を読むまで知らない方がいらっしゃったら、一度お試しを。

 

アプリ作成やブログ作成は勿論、仕事での資料作成など多様な場面で使えます。

 

今回はこの辺で、ではまた次回お会いしましょう♪

 

個人アプリの収入を報告します。副業をお探しの方は参考にして下さい。2019年6月

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

 

今回は2019年アプリ収入を報告します。

 

なんとその額・・・

 

 ¥1,370-

       (2019年6月)

 

・・・でした(T_T)

 

先月は¥2,500-でしたので、45%ダウンと なる結果でした。

本業の給料で45%ダウンすれば生活が危ないです

 

 

最近の私の夢・・・

毎朝、南国で波の音を聞きながら、

コーヒーを片手にプログラミングしながら

生活をすることです。

 

まぁ現実は厳しいですねぇ・・・・

片手間にアプリ作成をしているだけではこの程度でしょう。

真剣に開発をされている個人デベロッパーの方々に失礼ですしね、

覚悟がないと、夢も現実にならないと分かっています。

 

毎月報告しておりますが、

まだまだ私の市場価値は相変わらず、

中学生の小遣い程度です。

 

今までの経過は下記の通りです。

f:id:TFs_apps:20190701224111p:plain

 

いつもの通り昨対比を報告します

 

2019年6月 ¥1,370- 

 ▶▶▶ 249%

      (2018年5月:¥549-)

 

まずまずの成長率です。

 

同じ成長率で2020年6月を予想すると

 ▶▶▶ ¥3,418-

      ( = ¥1,370-  ×  249%)

 

う~ん、まぁ来年はこのくらいかもしれませんね。

かなり現実的な予想です(汗)

 

 ↓↓興味があれば関連記事もぜひどうぞ

令和最初の収入報告

www.tfsappsone.com

 

平成最後の収入報告

www.tfsappsone.com

 

 

こんな調子で、今月もアプリ作成頑張っていきます。

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

 

この記事を読んだアプリ開発者の皆様、ブロガーの皆様、アプリ作成やブログなど副業を考えている方々にとって良い事がありますように(^^)v