週末のアプリ作成

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

【Android ソケット通信】サーバーとクライアントの実装(スマホ〜PC間、スマホ〜スマホ間の通信)※サンプルソース公開

Android ソケットサーバーとソケットクライアントの簡易アプリを実装(サンプルソース公開)

こんにちはTF's apps(滋賀のアプリ開発者)です。なぜか年の瀬にAndroid でソケット通信プログラムを作成しています、ちょっと本業で使えると思いましたの勉強も兼ねて作ってみました、その時のソースコードを紹介します、興味のある方はぜひ参考の一つとして使用頂ければと思います。

■アプリの動作です

使い方は次の通りです。それぞれにアプリをインストールして、起動させた後、下記の手順に従い操作すると相互通信をスタートします。クライアント側は「テストメッセージ」を送信し、サーバー側は「私はサーバーです」を応答する、ただそれを繰り返すだけのシンプルな通信アプリです。

サーバー側

①ソケット「サーバー」のモードを選択

②「START」ボタンを押下

クライアント側

①ソケット「クライアント」のモードを選択

②サーバーのIPアドレスを入力(例:192.168.1.17)

③(事前にPINGボタンでサーバーとの導通確認を勧めます)

④「START」ボタンを押下

(1)動作環境

まずは今回構築したシステムの概要です、ごくごく一般的な環境で構築しています。この記事を読んでいる方は皆さん似たような環境だと思います。家庭用の無線ルーターを使用して、PC(Android Studio エミュレータ)とスマホに同じアプリをインストールさせてします、PC側をクライアント、スマホ側をサーバーにしています。注意点としてはスマホサーバーにすることです、同じプログラムでPC側サーバーにするとうまく通信できませんでした、理由としてはエミュレータ側のwindowサイズが0バイトとなってしまうためでした。エミュレータ側のwindowサイズを設定する方法がわからなかったので、調査するのを打ち切っています。なので、下記の構成の通り、スマホ側をサーバー、PC側をクライアントで使用ください。(もし、スマホ2台で使用するのなら全く問題ありません。どちらをサーバー、クライアントにするかは特に気にする必要がありません)

(2)ソケットクライアント

ソケットクライアントとして、MyClientというクラスを作成しています。そのメソッドとして、接続:Connect、切断:DisConnect、送信:SendMessage、受信:RecvMessageを用意しています。ポート番号は2002を使用しています。では実際のソースコードとなります。

package tfsapps.sockapp;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;

public class MyClient {

public String str_status = "";
private Socket cSocket = null;
private OutputStream writer = null; //書込み
private InputStream reader = null; //読込み
private String ipaddress = "192.168.1.17";
private int counter = 0;

public MyClient(String ipaddr) {
if(ipaddr.isEmpty() == false) {
ipaddress = ipaddr;
}
}

/*********************************
ソケット接続
*********************************/
public boolean Connect() {
str_status += "[1] 接続中\n";
InetSocketAddress _socket = new InetSocketAddress(ipaddress, 2002);
try {
cSocket = new Socket();
cSocket.connect(_socket, 1000);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
str_status += "[2] 接続完了\n";
return true;
}
/*********************************
ソケット切断
*********************************/
public boolean DisConnect() {
try {
cSocket.close();
cSocket = null;
writer.close();
reader.close();
}
catch (Exception e) {
}
return true;
}

/*********************************
メッセージ送信
*********************************/
public boolean SendMessage(String temp) {

if (cSocket.isConnected() == false){
return false;
}

str_status = "[3] テキスト送信中です・・・\n";

// テキスト送信
try {
writer = cSocket.getOutputStream();
counter++;
String str = (temp + counter);
writer.write(str.getBytes("UTF-8"));
str_status += "送信>>>:"+str+"\n";

} catch (IOException e) {
return false;
}
return true;
}

/*********************************
メッセージ受信
*********************************/
public Boolean RecvMessage() {

String temp = "";
byte w[] = new byte[4048];
int size;
if (cSocket.isConnected() == false){
return false;
}
str_status += "[4] テキスト受信中です・・・\n";

// テキスト受信
try {
reader = cSocket.getInputStream();
size = reader.read(w);
if (size <= 0) {
return false;
}
else{
temp = new String(w, 0, size, "UTF-8");
}
str_status += "受信<<<:"+temp+"\n";

} catch (IOException e) {
return false;
}
return true;
}
}

(3)ソケットサーバー

次にソケットサーバーです、同じくMyServerというクラスを用意しています。そのメソッドとして、通信受付:Accept、切断:DisConnect、受信:RecvMessage、送信:SendMessageを作成しています。

package tfsapps.sockapp;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {
/**
* ソケット通信(サーバー側)
*/
private String ipaddress = "127.0.0.1";
public String recv_mess = "";
private ServerSocket sSocket = null;
private Socket socket = null;
private InputStream reader = null; //読込み
private OutputStream writer = null; //書込み

public MyServer() {
;
}

/*********************************
ソケット受付処理
*********************************/
public boolean Accept(int port) {
int myport = 0;
try {
if (sSocket != null) {
return true;
}

if (port == 0) myport = 2002;
else myport = port;

//IPアドレスとポート番号を指定してサーバー側のソケットを作成
sSocket = new ServerSocket(myport);
socket = sSocket.accept();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/*********************************
ソケット切断
*********************************/
public boolean DisConnect() {
try {
socket.close();
socket = null;
writer.close();
reader.close();
}
catch (Exception e) {
}
return true;
}

/*********************************
メッセージ受信
*********************************/
public boolean RecvMessage() {

String temp = "";
byte w[] = new byte[4048];
int size;

if (socket.isConnected() == false){
return false;
}
try {
reader = socket.getInputStream();
size = reader.read(w);
if (size <= 0) {
return false;
}
else{
temp = new String(w, 0, size, "UTF-8");
}
recv_mess += "受信<<<:"+temp+"\n";
return true;
}
catch (Exception e){
return false;
}
}

/*********************************
メッセージ送信
*********************************/
public boolean SendMessage() {

String str = "私はサーバーです";

if (socket.isConnected() == false){
return false;
}
try {
writer = socket.getOutputStream();
writer.write(str.getBytes("UTF-8"));
return true;
}
catch (Exception e){
return false;
}
}
}

(4)メインプログラム

最後にメインプログラムです。アプリ本体のMainActivityは、UIのボタン処理や、ソケットクライアント、ソケットサーバーの起動を担当しています。ポイントはサーバーもクライアントもどちらもスレッドにて実装することです。今回は、Threadクラスのrunメソッドを使用してwhileループさせています。説明より実際のソースを見る方が早いと思いますのでどうぞ。

package tfsapps.sockapp;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private MyServer mySvr;
private MyClient myClt;
private TextView message;
private RadioButton rbtn_Svr;
private RadioButton rbtn_Clt;
private EditText inp_IpAdress;

private int mode;
private boolean taskrun = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

message = (TextView) findViewById(R.id.message);
rbtn_Svr = (RadioButton) findViewById(R.id.radio_server);
rbtn_Clt = (RadioButton) findViewById(R.id.radio_client);
inp_IpAdress = (EditText) findViewById(R.id.input_ipAdress);
}

/* ラジオボタン:ソケットサーバー モード[ON] */
public void onRbtn_Server(View view)
{
mode = 0;
rbtn_Svr.setChecked(true);
rbtn_Clt.setChecked(false);
}
/* ラジオボタン:ソケットクライアント モード[ON] */
public void onRbtn_Client(View view)
{
mode = 1;
rbtn_Svr.setChecked(false);
rbtn_Clt.setChecked(true);
}
/* ボタン:モード強制終了 */
public void onStop(View view) {
taskrun = false;
message.setText("初期状態 .. .. .. ");
}
/* ボタン:スタート */
public void onStart(View view) {

if (mode == 0){
ServerStart();
}else{
ClientStart();
}
}
/* ボタン:PING */
public void onPing(View v){
String ipadrr = inp_IpAdress.getText().toString();
String tempcmd = "ping -c 5 " + ipadrr;
Thread thread = new Thread(){
public void run() {
message.setText("---PING START---");
Runtime runtime = Runtime.getRuntime();
Process proc = null;
try{
if (ipadrr.isEmpty()) {
proc = runtime.exec("ping -c 5 192.168.1.17");
}
else {
proc = runtime.exec(tempcmd);
}
proc.waitFor();
}catch(Exception e){}
int exitVal = proc.exitValue();
if(exitVal == 0){
message.setText("-->PING OK ");
}
else{
message.setText("-->PING NG ");
}
}
};
thread.start();
}

/*
ソケットクライアント モード処理
*/
public void ClientStart(){
String tmpAddress = inp_IpAdress.getText().toString();
taskrun = true;

if (myClt == null){
myClt = new MyClient(tmpAddress);
}

/* 専用スレッド起動 */
Thread thread = new Thread(){
public void run() {
int step = 0;
int retry = 0;

try {
while (taskrun) {
switch (step) {
case 0: //接続待ち
if (myClt.Connect()) {
step = 1;
}
break;
case 1: //送信
if (retry > 5) {
myClt.DisConnect();
retry = 0;
step = 0;
}
else {
if (myClt.SendMessage("テストメッセージ")) {
step = 2;
} else {
retry++;
}
}
break;
case 2: //受信
if (retry > 5) {
myClt.DisConnect();
retry = 0;
step = 0;
}
else {
if (myClt.RecvMessage()) {
step = 1;
retry = 0;
} else {
retry++;
}
}
break;
}
//画面更新
message.setText(myClt.str_status);
sleep(300);
}

// loop 抜ける
myClt.DisConnect();
myClt = null;

}catch(Exception e){
return;
}
}
};
thread.start();
}

/*
ソケットサーバー モード処理
*/
public void ServerStart() {

taskrun = true;

if (mySvr == null){
mySvr = new MyServer();
}

/* 専用スレッド起動 */
Thread thread = new Thread(){
public void run() {
int step = 0;
int retry = 0;

try {
while (taskrun) {
switch (step) {
case 0: //接続待ち
if (mySvr.Accept(2002) ){
step = 1;
}
break;
case 1: //受信
if (mySvr.RecvMessage()) {
step = 2;
}
break;
case 2: //送信
if (mySvr.SendMessage()) {
step = 1;
}
break;
}
message.setText(mySvr.recv_mess);
sleep(100);
}

// loop 抜ける
mySvr.DisConnect();
mySvr = null;

}catch(Exception e){
return;
}
}
};
thread.start();
}
}

(5)おまけに、PING

今回、最初に試行錯誤しているときにPING処理もあわせて実装していますので、上記ソースの「ボタン:PING」を参考にしてください。あとやっぱり通信プログラムですので、どこまで正常に動作しているのかわからない場合がありますので「wireshark」などのパケットアナライザを使用しながらデバッグすることを勧めます。

あと、最後になりましたが、あらかじめAndroidManifest.xmlに下記のパーミッションを追記するのも忘れずに。


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 

以上、簡単ですが、ソケットサーバーとソケットクライアントの実装の仕方を紹介しました。一度コピペで試して見てください。

 

【副業】アプリ収益報告 2022年11月の月収 ※個人アプリ開発者の実態

令和4年アプリ広告収益、2022年11月の月収報告。個人アプリ開発者の実態

こんにちわ、TF's appsです(滋賀の個人デベロッパー)。今年(2022年)も1ヶ月を切りましたね、世間ではサッカー日本代表の活躍(決勝トーナメント進出)にワクワクしています。毎週末の息子とのサッカー練習もいつもより気合いが増します⤴️⤴️ 先日はサッカーの試合で2得点決めた我が子の成長を見て、自分も何か成長しないとと日々思うこの頃です。最近は本業が忙しくて「週末のアプリ作成」が全くできていません、困ったものです。しかし、毎月の収入報告は継続していきます、この記事を見て次のアプリ開発者が現れるかもしれませんからね。では前置きはこのくらいにして収益の報告します〜♪

(1)アプリ広告収入

2022年11月

 ¥943-

無料アプリのGoogle広告収益となります、日本国内もコロナ禍の生活に慣れ、国際空港の規制も緩和され、インバウンドの影響も受けたいものですが、零細個人アプリ開発者にはまったく影響がないですね(笑)最近では慣れた収益ですね。

次に昨対比です。

2022年11月 ¥943-

 ▶▶▶ 100%

  (2021年11月:¥934-)

ほぼイコールです、昨年から成長なしという結果でした。息子のサッカー成長率は1000%程になってそうですが、親父の成長は無しでしたね。まぁ懲りずにボチボチ進めていきます、いつかバズる日を夢見て・・・・。次に有料アプリの収益です。今月は1DLとなりましたので¥140-となります。次に昨年リリースした新米アプリ達の動向紹介となります。

(2)新米アプリの動向

下表は昨年にリースした4つのアプリについての直近のDL(ダウンロード)状況です。9月(青色)、10月(橙色)、11月(灰色)の各アプリのDL数の累計です。アプリ「点滅ライト」「熊鈴Pro」は昨年2021年12月リリースです、アプリ「星を探せ」は昨年2021年9月リリース、アプリ「通知タイマー」は昨年2021年6月リリースとなります。

通知タイマーアプリの成長率が9月→10月と比較して10月→11月は2倍の伸びとなっています。1ヶ月当たりのDLが60となりました。少しずつですが、昨年植えた苗が成長しつつありますね。ちなみに通知タイマーアプリのこれまでの広告収入を調べてみました・・・すると驚きの結果・・・259円(全期間)でした。

DL数350のアプリの広告収入は259円となります。アプリの使用頻度によって変わりますが、こんな物です現実は。

・・・ではみなさん次が気になりますよね?

・・・このアプリの収益は?

累計10,900DLとなった自身の作品で一番多いDL数である熊鈴アプリのこれまでのGoogle広告収益は¥19,600-となります。これも使用頻度によりますが、これもまた現実です。多いか少ないかは皆さんの判断にお任せします。ただ、現実を公開することで、アプリ開発を始めようと思う方がいるかもしれませんしね(笑)ちなみに収益1位のアプリは価格比較どちらがお得¥29,200-となりました。累計DLは3,389となります。

では今月はこの辺で、近々、ブログの成長率もご紹介したいと思います。少しずつですがこちらも右肩上がりで今後の伸びに期待したいところです。

↓ブログ成長率紹介(予告編)のグラフ図です。

 

【副業】アプリ収益報告 2022年10月の月収 ※個人アプリ開発者の実態

令和4年アプリ広告収益、2022年10月の月収報告。個人アプリ開発者の実態

こんにちわ、TF's appsです。少し寒くなってきましたね〜みなさんいかがお過ごしでしょうか? 今年も気がつけば11月になり今年もあと2ヶ月となりました、一年が早いですね。先月の記事を読んだら全く同じことを書いていました(汗)考えることが同じです・・・年を取りましたね(笑)ではさっそく今月の個人アプリの収益報告をしたいと思います。

(1)アプリ広告収入

2022年10月

 ¥963-

無料アプリのGoogle広告収益となります、う〜ん先月は1000円オーバーとなったので、このままコロナ禍前に回復するか?という期待をしていましたが、延びていません。世間はコロナの緩和が進み、外国人観光者が増えているという追い風となっていますが、物価高で国内の消費を落ち込んでいるのでしょうか・・・いずれにしても零細個人アプリ開発者における恩恵は変化せずという結果です。では次に作対比の紹介です。

次に昨対比です。

2022年10月 ¥963-

 ▶▶▶ 106%

  (2021年10月:¥934-)

ほぼイコールです、昨年から成長なしという結果でした。アプリ開発は昨年から活発にしているのですが、なかなか結果が出ていませんね。しかし昨年リリースのアプリは少しずつDLされていますので、悲観的になる必要はありませんね。

次に有料アプリの収益です。今月は0DLとなりましたので¥0-となります。次に昨年リリースした新米アプリの動向を紹介します。

(2)新米アプリの動向

下表は昨年にリースした4つのアプリについての直近のDL(ダウンロード)状況です。8月(青色)、9月(橙色)、10月(灰色)の各アプリのDL数の累計です。アプリ「点滅ライト」「熊鈴Pro」は昨年2021年12月リリースです、アプリ「星を探せ」は昨年2021年9月リリース、アプリ「通知タイマー」は昨年2021年6月リリースとなります。

「点滅ライト」アプリと「通知タイマー」アプリだけが順調にDLを延ばしています。微々たる数値ではありますが・・・。いつか大きなうねりになることを期待してます。

(3)熊鈴が1万DL突破

先日、Twitterで案内しましたが自身のアプリが累計1万DL突破しました、いや〜うれしいですね、私のささやかな夢が近づいている気がします。その夢とは、偶然乗ったバスや電車で、ふと・・・ある人の携帯画面が見えた時に「自分のアプリ」がインストールされている事です。ある人に自身のアプリが必要とされインストールされている・・・個人アプリ開発者としてはこの上なく幸せが一時でしょう・・・その偶然に出会いたいものです、6年経過しましたが今のところは無しです。

play.google.com

しかし・・・そんなに遠くない未来に達成できることを祈って、これからも地道な週末のアプリ作成を続けて行きたいと思います、それとその経過をまたこのブログを通じて紹介したいと思います。ではまた次回お会いしましょう♪

 

ブログ4年目の結果は?その収入は?アクセス数は? 〜週末のアプリ作成〜

「週末のアプリ作成」ブログを始めて早4年経過。ブログの収入は?アクセス数は?

2022年10月9日(日)は、息子のサッカー試合も中止になり、肌寒い雨の一日となりました。急にやる事が無くなったので音楽を聴きながらネットサーフィンをしていると・・・そういえば自身のブログって最近どんな感じかな?って思ってこの記事を書きました。

ブログ名は「週末のアプリ作成」としています、タイトルから外れた記事も少々ありますが、メインの内容は自身が作成したAndroidアプリの紹介や自作アプリの収益を紹介しており、アプリ作成に興味がある方、プログラミングを勉強している学生の方に読んで欲しくて記事を書いております。

素人アプリ作成をチャレンジしてどれくらいの収益をあげる事ができるのか?どこにでもいる普通サラリーマンの奮闘記を紹介しています。今年で6年が経過してアプリのDL数やその収入を下記に紹介していますので、気になる方はぜひどうぞ↓

www.tfsappsone.com

前置きが長くなりましたのでさっそく「週末のアプリ作成」ブログの紹介をさせて頂きます。

(1)週末のアプリ作成

記事数:172

合計アクセス数:27,585

読者:50人

この数字を並べてみましたが・・・だから・・・ってな感じですね。良いのか悪いのか私にもよくわかりません(悲)

(2)アクセス数

上記の通り合計アクセス数は「27,585 」となっておりますが、前途多難でした・・・もちろんスタート直後は一日のアクセスは「〜10」程度でした、しかもこの期間は圧倒的に長く、3年ほど続きました。状況が一転したのはブログタイトルとは関係しない記事(※アプリ作成は無関係の記事)を20211年11月に公開しました。するとアクセスがじわじわ伸びるようになりました。それはアプリ開発に使用しているツール(GitHub)の使い方を紹介した内容でした。

www.tfsappsone.com

もちろん、この記事(↑)以外にもブログタイトルと関係のない記事はたくさん記載しておりましたが、やはり、インターネットを検索する時は、皆さん困り事を解消するために、それに合致した記事内容となっていたので検索が比較的に伸びたんだと思います。

現在は、大体50〜100ほどになっています。少しずつですが右肩上がりとなっています。

それ以外の上位アクセスされている記事のクエリは下記の通りです。[Android Studio]に関係するクエリが4件、[GitHub]に関係するクエリが5件、[ロマサガRS]に関係するクエリが1件という結果です。

(3)ブログ収益

アフィリエイト(A8)とGoogle Adsense のこれまでの収益です。まずはアフィリエイトの方は「0円」です。そしてGoogle Adsenseの方が総額「979円」でした。

多分、いろんなブログ収益を紹介されている記事を読んでいると少ない方だと思います、もっとアフィリエイトで皆さん収入を得られていると思います。私の記事はアフィリエイト商品の紹介ではないためこの結果になっていると考えます。

いかがでしょうか?かなり底辺なブログのアクセス数と収益の紹介でした、これからもメインは「自身のアプリ紹介」をメインでこのブログを続けていく予定です。その後はまたの機会に報告したいと思います。

【副業】アプリ収益報告 2022年9月の月収 ※個人アプリ開発者の実態

令和4年アプリ広告収益、2022年9月の月収報告。個人アプリ開発者の実態

こんにちわ、TF's appsです、皆さん秋をどうお過ごしでしょうか?気がつけば9月が終わりました、2022年もあと3ヶ月しかないんですね・・・・いや〜年を重ねるたびに一年が早く感じます。人生80年、残された時間はあと半分、しっかり週末のアプリ作成をして楽しく過ごしていきます(笑)今回の記事もいつもの収益報告となります。ではさっそくどうぞ!!

(1)アプリ広告収入

2022年9月

 ¥1,515-

無料アプリのGoogle広告収益となります、9月は収益が伸びました・・・新米アプリが少しずつ貢献しているのと、古参アプリ1日だけチートデイとなりましたので、それが貢献したと考えます。後ほど紹介しますね。あと個人的な感覚ですが社会活動がコロナ禍前に戻りつつある気がします、本業での出張も以前に比べて緩和されて行きやすくなっている気がしますね。

次に昨対比です。

2022年9月 ¥1,515-

 ▶▶▶ 213%

  (2021年9月:¥708-)

いい感じでアップしています、先月も昨対比はアップしていますので、アプリ経済も回復しつつありますね。私個人のアプリ経済ですが・・・汗

次に有料アプリの収益です。今月も1DLありましたので¥140-となります。先月に続きまぁ有料アプリがDLされています。

(2)チートデイ

先に少し触れた古参アプリのチートデイについて紹介します。アプリは「価格比較 どちらがお得(金額計算アプリ)」です。このアプリは2018年2月公開して、累計DL数は3,200となっています。

play.google.com

このアプリは最近はあまりDLされていなかったのですが・・・・ある日突然チートデイがきます、下図をご覧ください。普段は、3〜5DL/日の水準なのですが・・・

あれ!?・・・9月5日に何かが起きています・・・全く分かりません。もしかしてこのまま続くのか?と思っていると、一発芸人のようにこの高波はさっと流れていきました。また来ないかな〜??

あとで調べてみたのですが、[Google Play]以外からの訪問者がインストールしたようでした。心当たりはなく今だに不思議です。下記のサイトかな?とは思いましたが、こればっかりは憶測で不明です、ただ一瞬夢を見ました(汗)このまま増え続けるのかと・・・。

いずれにしても、アプリを公開しているとこんな痺れる一日が訪れます。この記事を読んで少しでもアプリ開発したいと感じた方は、ぜひトライしてみましょう♪ 最後は昨年リリースした新米アプリの動向報告です。

(3)新米アプリの動向

下表は昨年に新規リリースした4つのアプリについての直近のDL(ダウンロード)状況です。7月(青色)、8月(橙色)、9月(灰色)の各アプリのDL数の累計です。アプリ「点滅ライト」「熊鈴Pro」は昨年2021年12月リリースです、アプリ「星を探せ」は昨年2021年9月リリース、アプリ「通知タイマー」は昨年2021年6月リリースとなります。

う〜ん、どのアプリを伸び悩んでいますね。アプリ飽和市場において極零細個人アプリはなかなか戦うのが厳しいですが、逆を言うこれだけの人がわざわざ私のアプリを選んでくれているので、それは嬉しいことです。これからも楽しんで週末のアプリ作成を続けて行きます。では今回はこの辺で失礼します。

Most Expensive App ~ Most Expensive Figure Art App ~

Most Expensive Figure Art App

 

We have released an app for wealthy people. I usually make only free apps, but this time I released a high-priced app. The app is an art app. Now let me give you a concrete explanation.

How would you like to be wealthy? It is such an app. I made it for the purpose of enjoying art as entertainment.

 

Would you like to install it on your smartphone like expensive art at home?

play.google.com

What about once-in-a-lifetime art? The graphic art changes randomly. No two paintings are the same. Astronomical patterned graphic art awaits you. You can change the color by tapping the screen of the smartphone.

 

It's not an app with functions, it's just an app to enjoy art on your smartphone There is no convenience, it is an application that competes only in entertainment, I would like you to judge for yourself whether or not this application is attractive in this era.

 

I don't know where these apps will go from here, will they be hits, will nobody use them at all, how many wealthy people will just enjoy art? In any case, I would like to continue to report the trend of this app from now on.

 

 

【副業】アプリ収益報告 2022年8月の月収 ※新作アプリリリース1ヶ月後のDL数

令和4年アプリ広告収益、2022年8月の月収報告。

新作アプリのリリース1ヶ月後のDL数を報告。

こんにちは、TF's appsです。気付けば夏が終わろうとしていますね、朝晩は涼しくなり猛暑が過ぎ去ったように思います。しかし、今度は台風11号が猛烈な勢力でじわじわ日本本土に近づいています、私の犬小屋(35年ローンのマイホーム)をさらっていくか心配です・・・。さて8月のアプリ収益と新作アプリの状況報告をしたいと思います、ではさっそくどうぞ♪

(1)アプリ広告収入

2022年8月

 ¥912-

8月の無料アプリのGoogle広告収益となります、今月は1000円未満となりました(悲)

次にいつものように昨対比の紹介です。

2022年8月 ¥912-

 ▶▶▶ 147%

  (2021年8月:¥620-)

昨年も8月は苦戦していたのですね、もろにコロナの影響を受けてそうです、昨年はデルタ株が猛威をふるっていましたので。今年は行動制限がない夏休みとなりましたが、感染者は連日20万人を超え、8月19日には26万人と過去最多になり、自主制限した方も多数いらっしゃと思います。

つづいて有料アプリのDL数が1件ありましたので、¥140-となります。以上で8月のアプリ収益報告となります。ここで無料アプリの広告収入の1〜8月までの累計値を比較してみました。

2021年1〜8月の累計 ¥5,590-

2022年1〜8月の累計 ¥6,244-

昨年と比較して微増しているのが分かります。その理由は次に紹介する昨年種まきしたアプリが少しずつ収益を上げていることになります。

(2)昨年公開アプリのDL数

下表は昨年に新規リリースした4つのアプリについての直近のDL(ダウンロード)状況です。6月(青色)、7月(橙色)、8月(灰色)の各アプリのDL数の累計です。アプリ「点滅ライト」「熊鈴Pro」は昨年2021年12月リリースです、アプリ「星を探せ」は昨年2021年9月リリース、アプリ「通知タイマー」は昨年2021年6月リリースとなります。

少しずつですがこちらもDL数が増えてきています。そして広告収入も増えてきています。

有料アプリ「熊鈴Pro」は 10 DLですが、累計収益は¥1,400-なんです。昨年12月にリリースしてこれだけ収益を上げたことになります。期間は8カ月。

無料アプリ「通知タイマー」は 244 DLですが、累計収益(広告収入)は¥170-となります。しかも昨年6月リリースのため、期間は14ヶ月。

この単純な結果比較ですと有料アプリの方が良いように思いますね、しかしこればかりは、私も分かりません。もう少し長期になると立場が逆転する可能性もありますので。

(3)新作アプリの紹介

先月のブログで紹介した新作アプリ「水分補給タイマー」について、8月2日にリリースして1ヶ月経過しましたそのDL数を紹介したいと思います。

play.google.com

1ヶ月経過して・・・なんとそのDL数「6」となりました。爆死です。猛暑ですのでもう少しDL数が増えると正直思っていましたが・・・・現実は厳しいですね

そんな傷心の私を励ますアプリが現れました、熊鈴アプリ(無料版)です、なんと累計のDL数がついに・・・ついに・・・10,100 DL となりました。2017年にリリースして、気づけば5年が経過・・・。このアプリも始めはスロースタートでDL数はじわじわアップしていきました。

play.google.com

以上、8月は色んなことがありましたが、懲りずに週末のアプリ作成を継続しています、今も新たなアプリ作成をせっせと進めています。また読者の皆様に紹介できる日を楽しみにしたいと思います、では最後まで読んでいただきありがとうございました。皆様の一日が素敵でありますように♪ また次回お会いしましょう!!