週末のアプリ作成

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

プログラミング教室 草津校を夢みて

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

今回の記事は「プログラミング教室」についてです。

 

過去にも子供に教えたいプログラミングとは何か?をテーマにしてきました。

 

私の日常生活

会社でプログラミングをして

家で趣味のプログラミングをする

(最近は会社でのプログラミングが少し減っていますが・・・)

 

そんな38才のおっさんが

ついに地元(滋賀県草津市)でプログラミング教室をする夢を見てしまったので、そんな記事です。

f:id:TFs_apps:20200211215510p:plain

 

もともと、人に教えるのは嫌いじゃないんです(笑)

自分の知っていることはすべて教えたいと思う人なんでね(汗)

 

大学の時、アルバイトは高校生の家庭教師と、公文(KUMON)の先生をしていました。家庭教師は4年間続けていました、数学が赤点だった子を教えて、教え子が大学に合格するところまで面倒を見ましたね・・・懐かしい。

 

そんな人だから!?

子育てがもう少し落ち着いたら

こじんまりとプログラミング教室でもできたらなぁと思います。

地元に恩返しだぁ

 

先日の会話

私 「プログラミング教室しようかな?」

妻 「・・・こんな地元で・・・恥ずかしいわ」

私 「長女のピアノの先生は近所にいるのだから」

  「それと一緒一緒」

妻 「・・・・」

  「・・・・」

 

私はプログラミングと出会わないと生活ができなかったでしょう。

(そもそもはゲーム好きから始まっているのですが・・・)

生活の収入もそうですが、なんせ夢中にさせてくれるので

何か楽しい趣味に打ち込んでいるような感じになります。

 

この感覚は人それぞれですが

レゴやプラモデルなどモノを作る事が好きな人は

きっとプログラミングはフィットすると思います。

 

プログラミング学習において一番大切なことは

よく映画やドラマなどテレビで放送される

英語のような文字(プログラミング言語)を入力して

ソフト作成やハッキングをするような事ではありません。

 

ロジカルな考え方を養うことです。

またIT(=情報技術)が発展する現代において、最低限のITリテラシー(=適切に理解・解釈をして活用すること)を身に付けることが必要でしょう。

 

私が小学生の頃(30年前)は家庭にパソコンなんてありませんでした。今の子供はパソコンどころの世界では無くなっています。タブレットスマホ、家電でさえ、世界中とつながる世の中になっているのです。

 

ですから、私が小学生であった頃と同じ教育(国語・算数・理科・社会)ではダメでしょう。世の中の変化に適応していく必要があるのです。

プログラミング教育が必修化されるのは当然のことです

 

でも慌てることはありません。

この記事を読んでいる方もスマホやパソコンで見ているはずです。

それなりのITリテラシーがあるということです。

他の学問(理科や社会など)と同じように

少しずつ疑問に思うところを調べていくだけです

 「なぜ夏は暑くて、冬は寒いのか?」

 「なぜインターネットは繋がるのか?」

 

少しずつ分かる範囲が増えていきます。

焦らず少しずつ知識を増やしていけば良い

周りの環境が自然にそうなっています。

今やITに満ち溢れた世界です。

他の学問と同じです

恐れずぶつかって行けば良い

ただそれだけの事です。 

 

なんか最後が根性論になりましたが(汗)

如何だったでしょうか?ではまた次回お会いしましょう♪ 

 

 

↓↓↓ 過去の記事はこちら ↓↓↓

 なぜプログラミングの教育が必要なのか

 

 

子供にとって本当に大事なプログラミング教育について


子供とゲームに関してゲームは悪なのか?

 

アプリ作り方 android その4「基本処理の実装2」

1からandroidアプリを作っていく。第4弾です。いつも通りソースコードを全公開しています。

 

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

今回の記事は娘のための学習アプリ作成 第4弾です。

前回に引き続き基本処理の実装を進めました。

基本動作ができた様な状態です。

 

今回実装した点

・画面上部のステータス欄の表示

・ボタンの表示(はじめるとつぎへの切替)

・11個の漢字をすべて完了した後の表示

 

1.基本実装の紹介

1-1.画面上部のステータス表示に対応

アプリ起動直後は「はじめるを押してね☆」を表示します。

f:id:TFs_apps:20200209092532p:plain

 

1-2.プレイ中の画面表示

漢字を検索すると画面上部のステータスは「つぎへを押してね☆」に変わります。

また「はじめる」のボタンも「つぎへ」に変わります。

音読み、訓読み、画数、例文をヒントにこたえの漢字を考える。

f:id:TFs_apps:20200209092552p:plain


1-3.こたえの画面

「こたえ」ボタンを押すと

答えの「漢字」がポップアップ表示されます。

f:id:TFs_apps:20200209092611p:plain

 

1-4.次のステップ

基本処理の実装は終わりましたので

あとはアイコン作成や漢字をひたすら登録するだけです。

漢字がどれくらいあるのか調べたところ

・・・

2年生が覚える漢字の個数

・・・

・・・

なんと

・・・

・・・

160個もあります

・・・

・・・

まだ現在入力できているのは11個です(涙)

昨晩80個入力したのですが

2時間弱程度かかっています(汗)

 

う~ん

頑張りますね。すべては我が娘のため。

 

 

2.ソースコードの紹介

 

MainActivity.java

package
tfsapps.kanjicard;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private KanjiTable _kanji_table; //漢字検索テーブル
private Kanji _display_kanji; //表示中の漢字
private String _display_status; //表示中のアプリ説明文
private String _display_progress; //表示中の進捗情報
android.support.v7.app.AlertDialog.Builder popup;
private TextView popuptext;
private boolean isStart = false;
private int disp_count = 0;

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

//漢字テーブルの作成
_kanji_table = new KanjiTable();
DisplayScreen();
}
/* アプリ画面の表示 */
public void DisplayScreen()
{
TextView btn_start = (TextView) findViewById(R.id.btn_start);
TextView text_status = (TextView) findViewById(R.id.text_status);
TextView text_status2 = (TextView) findViewById(R.id.text_status2);
TextView text_onyomi = (TextView) findViewById(R.id.text_onyomi);
TextView text_kunyomi = (TextView) findViewById(R.id.text_kunyomi);
TextView text_kakusuu = (TextView) findViewById(R.id.text_kakusuu);
TextView text_exp = (TextView) findViewById(R.id.text_exp);

String txt1 = ""; //onyomi
String txt2 = ""; //kunyomi
String txt3 = ""; //kunyomi
String txt4 = ""; //kakusuu

if (isStart == false)
{
btn_start.setText("はじめる");
text_status.setText("「はじめる」を押してね☆");
text_status2.setText("");
}
else
{
btn_start.setText("つぎへ");
text_status.setText("「つぎへ」を押してね☆");
text_status2.setText("いま:"+ disp_count + "個目 / ぜんぶ:11個");

txt1 = _display_kanji.on_yomi;
txt2 = _display_kanji.kun_yomi;
txt3 = _display_kanji.kaku_suu;
txt4 = _display_kanji.exsample;
}
text_onyomi.setText(txt1);
text_kunyomi.setText(txt2);
text_kakusuu.setText(txt3);
text_exp.setText(txt4);
}

/* はじめる or 次へ */
public void onStart(View view) {

disp_count++; //何個目で漢字であるかのカウンター

if (isStart == false) //起動画面か否か
{
isStart = true;
}
//漢字検索
_display_kanji = _kanji_table.KanjiTableSearch();

/* 検索終了したら、全ての漢字が検索終了したら */
if (_display_kanji == null) {
isStart = false;
disp_count = 0;
_kanji_table.KanjiTableSearchReset();
}
DisplayScreen();
}
/* こたえ */
public void onResult(View view) {

if (isStart == false)
{
return;
}

popuptext = new TextView(this);
popuptext.setText(_display_kanji.kanji);
popuptext.setGravity(Gravity.CENTER);
popuptext.setTextSize(90);

popup = new android.support.v7.app.AlertDialog.Builder(this).setView(popuptext);
popup.setTitle("こたえの漢字");
// popup.setView(popuptext);
// popup.setMessage(_display_kanji.kanji);
popup.setPositiveButton("OK", null);
popup.show();
}

}

 

あいさい広場 草津 公園

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

今回の記事はわが公園であるai彩ひろば(あいさい広場)に注目してみます。

f:id:TFs_apps:20191212175326j:plain

 

過去の記事でも紹介しました。

↓↓この公園のオススメを紹介しています

 滋賀に来たら一度来てください

www.tfsappsone.com

 

今週末も癒しを求めていつもの公園に足を運びました。

 

いつものように・・・

 

当たり前のように・・・

 

そして自然に・・・

 

一週間のストレスがふーっと落ちていきます

 

そう私にとってのai彩ひろばはそんな場所です。

子供たちも大好きです。

 

かけっこして、自転車して、遊具で遊んで

そんな地元の身近な公園です。

 

この公園の魅力はどこにあるのか

そんな事を考えることは一切ありません

訪れたら自然とわかります

そう感じます

 

何か気持ちがリラックスできる

 

私はバス釣りも好きで琵琶湖によく行きますが

琵琶湖を見ながら

ボケーっと過ごしている時と同じ感覚になります

 

そんなリラックスをこのブログの読者にも

感じで頂きたいのです

 

滋賀に来たらぜひ寄り道して下さいね(^^v)

 

 

ai彩ひろば

〒525-0061 滋賀県草津市北山田町3268−1

TEL: 077-568-2941

f:id:TFs_apps:20191212175044j:plain

 

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

 

 

 

 

アプリ 収入 2020年1月

令和2年初の個人アプリの広告(AdMob)収入を報告しますね♪

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

令和二年、初のアプリ収入の紹介をします。

厳しいスタートとなりました。

 

~単月の広告収入~

では早速、2020年1月のアプリ広告収入(AdMob)です。

 

▶▶¥1,100-

 

ここ3カ月マイナス成長となっています。

いつもの通りに今までの経緯と昨対比の発表です。

 

f:id:TFs_apps:20200202105819p:plain

 

~昨対比~

次に恒例の昨対比の報告です

 

2020年1月 ¥1,100-

 ▶▶▶ 72%

     (2019年1月:¥1,515-)

 

う~ん、3カ月連続のマイナス成長です。

まぁまぁ納得はしています。

 

しかし、今月は1日の最高記録を出した月でもあります。

2020年1月13日

歴史が変わる一日でした。。。。

 

たった3クリックで

¥515-

 

かなり驚いたので思わずTwitterで報告しました(汗)

1クリック「¥170-」の計算となります。

1クリックでジュースが買えるとは・・・・

なんか夢がありますよね~。

アプリ作成を考えている方、今すぐ初めて下さい(笑)

f:id:TFs_apps:20200202110317j:plain

 

今月の振り返りをすると、

1月13日だけで

今月のアプリ収入の半分を出したのですね(涙)

 

あとの30日間はどんな状況なんだろう~

そんな事をふと考えました。

 

まぁでも前へ進むしかない

今進めている漢字アプリも時間に追われて

約2週間開発が止まっています。

 

週休1日が2週間続きましたので

今月の週末のアプリ作成がかなり失速しました。

ブログの更新もできていない状況です。

 

 

本当に疲れると無気力になって何もできないですね

いやできる事は一つだけあります。

 

ビール

 

家飲み

 

・・・これは外せない!!

 

さぁ元気を出して

好きな事をする時間を取っていこう♪

 

MHWIでムフェト・ジーヴァでも1狩りして

f:id:TFs_apps:20191221132712p:plain

f:id:TFs_apps:20191221132752p:plain

 

引き続き 

アプリ作成とブログ更新を進めていきますね。

 

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

 

 

youtu.be

 

 

 

ショッピング神アプリを目指して

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

今回の記事は夢を語らせて頂きます。

ショッピングにおける神アプリを目指してというテーマで書いてみます。

 

私はショッピングに関するアプリを3つリリースしています。

一番のヒット作がこのアプリ

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

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

f:id:TFs_apps:20200119180048p:plain

 

生活していると同じ商品だけどどちらがお得なんだろうって事がありますよね?

お店によっても価格は異なりますし、ポイントがあるお店や、割引があるお店、そもそも普段から安いお店、そんな時に単位当たりの価格比較ができるのがこのアプリです。

 

1本当たり、1個当たり、1グラム当たりなどで金額計算できて一番安いのはどれかが分かります。1円でもお得に買い物したい方にお勧めのアプリです。

f:id:TFs_apps:20200119180229p:plain

 

その他にもこんなアプリも作っています。

↓↓↓

価格比較 どちらがお得 TAX 軽減税率対応

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

 

価格比較 買い物上手(金額計算アプリ)

https://play.google.com/store/apps/details?id=ftapps.goodshopping

 

 

 

おかげさまで

2,330DL(ダウンロード)されています。

リリースしてから1年9カ月です。

 

しかし神アプリと言われるにはまだまだ程遠いですよね。

個人アプリではこんなものなのかぁとも思いますが、

もっと凄い個人アプリ開発者は沢山いらっしゃいますので(汗)

実際使って頂いている方にそのように思ってもらえたら嬉しいですけど。

 

しかし

チャンスは無限大である

ユーザー様と一緒に成長して神アプリにすれば良いのだと

アプリに寄せられるコメントや

類似アプリのコメントを確認することで

きっとユーザーに一番フィットしたオンリーワンのアプリができると思います。

 

そう神アプリになるいはインストールしてくれたユーザーと一緒に歩んでいけば、

少しずつですが着実に目指す姿に近づけるということです。

個人開発者でもいつかは大きな会社と対抗できるアプリに成長できるチャンスがあるのです。

Twitterでも沢山の仲間たちが日々個人開発しているのを見ています。

きっと彼らはそんなエネルギーに溢れた方々です。

 

刺激を貰いながら今日も週末のアプリ作成を進めていきます。

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

 

 

 

 

 

 

 

 

 

ドラクエやFFから学ぶリピートプレイ術

何回も遊ぶゲームってありませんか?なぜリピートプレイしてしまうのか、その疑問を紹介♪

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

年始早々、休日出勤を控えている中、ブログを書きます。

今回の記事は「名作であるドラクエやFFからリピートプレイ術を学ぶ」という議題で考えていきます。

 

~リピートプレイするゲームについて~

ゲーム歴30年の私はドラクエやFFを愛しています。

特にリピートプレイが多い作品と言えば

 

FFですと3、4、5です。

f:id:TFs_apps:20200117223305p:plain



ドラクエでも3、4、5となります。

f:id:TFs_apps:20200117223319j:plain

 

正直、それぞれハードを何世代も超えてプレイしています。

 

ファミコン

スーパーファミコン

PS1

PS2

PSP

スマホ

などでソフトを買ってプレイしています。

 

 

~ハマる理由は?~

はじめからクリアまで何回したのか覚えていないくらいです。

ではなぜそんなにハマるのかという事を考えていきます。

 

38才のおっさんが小学校の頃を思い出しながら、

自分の気持ちに正直になって振り返りました。

 

まずは

単純である

ストーリーが分かりやすく、

そして複雑なシステムもない、

失敗要素がない(取返しのつかない要素)

また容易にクリアできる

 

次に

プレイ時間の妥当性

最近のRPGではやりこみ要素が多いので

クリアするまでに30時間以上かかるような

作品が多くないでしょうか!?

正直、良いおっさんは疲れます(汗)

また長くなると何処かで息継ぎをしたくなり、

私の場合、FF9は一度休憩して、再プレイ

するまでに半年かかった記憶があります。

そのような気持ちにならない程度の時間で

クリアできるのが魅力です。

 

最後に

美化された記憶である

はじめてプレイした作品や

はじめて知ったジャンルやゲームシステムは

その人の中で美化されていると思います。

 

人って知ることに喜びを感じ

はじめて知った事の記憶というのは

特別なものとなります。

つまり、私にとってゲームを始めたばかりで

未知であったジャンルやゲームシステムというのは

特別な記憶であると自然に埋め込まれています。

 

そのゲームが、私にとっては

FF3~5、ドラクエ3~5なのです。

 

これらのゲームだけではありません。

他にも印象に残っている作品はいっぱいあります。

 

RPGですと

他にもスターオーシャンシリーズ、テイルズシリーズ、幻想水滸伝エストポリス伝記、ヴァルキリーシリーズ

 

格闘ですと

ストリートファイター、鉄拳

 

シミュレーションですと

信長の野望三国志スーパーロボット大戦ファイアーエムブレム

 

スポーツですと

ウイニングイレブンみんなのゴルフパワプロ

 

シューティングですと

グラディウスエースコンバットスターフォックス

 

レースですと

グランツーリスモマリオカート

 

・・・

・・・

まだまだあり

無限に出てくる

・・・

・・・

 

どれも私にとっては大切なゲームです。

 

ただその中でもゲームを知らなかった

少年の私が特に衝撃を受けたFFとドラクエです。

なんせ始めてゲーム機(ファミコン)を買って

中古ソフトでプレイしたのがドラクエ3とFF3です。

 

一生忘れないでしょう

 

こんな記憶に残る作品をアプリで提供できればと思います。

明日からも週末のアプリ作成、地道に続けていきますね。

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

 

アプリ作り方 android その3「基本処理の実装 」

1からandroidアプリを作っていく。第3弾です。いつも通りソースコードを全公開しています。

 

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

今回の記事は娘のための学習アプリ作成 第3弾です。

まだまだこれからですが基本的な処理を実装しました。

基本動作ができた様な状態です。

11個のサンプル漢字をランダムに表示するような動作ができております。

 

1.画面遷移

1-1.アプリ初期画面

アプリ起動時の初期画面です(まだまだ作成途中です)

説明文や進捗などはまだ処理を実装しておりません。

これから作成予定です。

f:id:TFs_apps:20200113124416p:plain

 

1-2.問題表示の画面

初期画面から「はじめる」ボタンを押すと

問題を表示する画面となります。

f:id:TFs_apps:20200113124725p:plain

 

1-3.こたえの画面

問題の画面から「こたえ」を押すと

ポップアップでこたえの漢字を表示します。

f:id:TFs_apps:20200113124846p:plain

 

2.サンプルソース

基本動作を作る上で作成したソースを抜粋で

まずは、11個の漢字情報を保有するテーブルを作成します。

各種初期値を用意しておき

コンストラクタのタイミングで初期値をセットします。

メイン処理から「次の漢字頂戴ね」という命令を実行できるように、

KanjiTableSearchというメソッドを用意します。

 

KanjiTable.java


public class KanjiTable {

private List<Kanji> Kanji_List = new ArrayList<Kanji>();
final int Maxkanji = 11;
private final Random rand = new Random(System.currentTimeMillis());
private Kanji nowkanji;

static String[] kanji_data = {
// 漢字
"刀", //1
"丸", //2
"弓", //3
"工", //4
"才", //5
"万", //6
"引", //7
"牛", //8
"元", //9
"戸", //10
"午", //11
"", //12
};

static String[] onyomi_data = {
// 音読み
"トウ", //1
"ガン", //2
"キュウ", //3
"コウ、ク", //4
"サイ", //5
"マン、バン", //6
"イン", //7
"ギュウ", //8
"ゲン、ガン", //9
"コ", //10
"ゴ", //11
"", //12
};

static String[] kunyomi_data = {
// 訓読み
"かたな", //1
"まる、まる(い)、まる(める)", //2
"ゆみ", //3
"", //4
"", //5
"", //6
"ひ(く)、ひ(ける)", //7
"うし", //8
"もと", //9
"と", //10
"", //11
"", //12
};

static String[] exp_data = {
// 例文
"このカタナ", //1
"マル太の木", //2
"ユミ矢", //3
"コウ作", //4
"天サイ", //5
"一マン円", //6
"つなヒき", //7
"ギュウにゅうをのむ", //8
"ゲン気なこども", //9
"トじまりをする", //10
"しょうゴ", //11
"", //12
};

static String[] kakusuu_data = {
// 画数
"2", //1
"3", //2
"3", //3
"3", //4
"3", //5
"3", //6
"4", //7
"4", //8
"4", //9
"4", //10
"4", //11
"", //12
};

//コンストラク
public KanjiTable() {
int i;

/* 漢字リスト作成 */
for (i = 0; i < Maxkanji; i++) {
Kanji list_data = new Kanji(kanji_data[i], onyomi_data[i], kunyomi_data[i], exp_data[i], kakusuu_data[i]);
Kanji_List.add(list_data);
}
}

//漢字の検索
public Kanji KanjiTableSearch()
{
int index1 = 0;
int i;

for(i=0;i<Maxkanji;i++)
{
index1 = rand.nextInt(Maxkanji);

//検索済みの漢字(すでに表示済み)
if (Kanji_List.get(index1).isAlive == false)
{
continue;
}
//初ヒットした漢字
else
{
Kanji_List.get(index1).isAlive = false;
nowkanji = Kanji_List.get(index1);
return nowkanji;
}
}

return null;
}
}



メイン処理はこんなまだまだこれから磨きを掛けていきますが、

現状はこんな漢字です。

 

各種表示するオブジェクトを用意しておき

はじめるボタンのイベントである「onStart」と

こたえボタンのイベントである「onResult」のみ

簡単ですが実装した状態です。

 

activity_main.java

package tfsapps.kanjicard;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private KanjiTable _kanji_table; //漢字検索テーブル
private Kanji _display_kanji; //表示中の漢字
private String _display_status; //表示中のアプリ説明文
private String _display_progress; //表示中の進捗情報
android.support.v7.app.AlertDialog.Builder popup;
private TextView popuptext;

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

//漢字テーブルの作成
_kanji_table = new KanjiTable();
}
/* アプリ画面の表示 */
public void DisplayScreen()
{
TextView text_onyomi = (TextView) findViewById(R.id.text_onyomi);
TextView text_kunyomi = (TextView) findViewById(R.id.text_kunyomi);
TextView text_kakusuu = (TextView) findViewById(R.id.text_kakusuu);
TextView text_exp = (TextView) findViewById(R.id.text_exp);

text_onyomi.setText(_display_kanji.on_yomi);
text_kunyomi.setText(_display_kanji.kun_yomi);
text_kakusuu.setText(_display_kanji.kaku_suu);
text_exp.setText(_display_kanji.exsample);
}

/* はじめる */
public void onStart(View view) {
_display_kanji = _kanji_table.KanjiTableSearch();
DisplayScreen();
}
/* こたえ */
public void onResult(View view) {
popuptext = new TextView(this);
popuptext.setText(_display_kanji.kanji);
popuptext.setGravity(Gravity.CENTER);
popuptext.setTextSize(90);

popup = new android.support.v7.app.AlertDialog.Builder(this).setView(popuptext);
popup.setTitle("こたえの漢字");
popup.setPositiveButton("OK", null);
popup.show();
}

}

 

今日はここまでです。

最後に過去の記事も参考にどうぞ!!

www.tfsappsone.com

 

www.tfsappsone.com