僕に捧ぐ

個人開発者の備忘録と雑談です。

GoogleのCloud Speech APIを試してみた。

ポッドキャストの文字起こしできたら面白いかなと思ってGoogleのCloud Speech APIで試してみました。

Google Cloud Speech API とは

簡単に言うと音声をテキストに変換してくれるAPIです。

使い方は下記のページを参考にしました。
qiita.com

実験その1 ドングリFMを文字起こししてみる

「469話 ほんまにバチェラーを超えるリアリティショー見つけたんです」を文字起こししてみます。
469 ほんまにバチェラーを超えるリアリティショー見つけたんです by donguri.fm | Donguri Fm | Free Listening on SoundCloud


(ファイルにダウンロードしてflacに変換しました。今回そのやり方は割愛します。ネットで検索できます。)

実験その1 結果

ドングリFMのお二人の話し方は丁寧なためか7~8割ぐらい文字起こしできている感じです。
「ほんまに」を3回、後半の「ジョルノジョバーナ」も聞き取れていますね。

出来たファイルの内容は下記の通り。

どうもナツメグですどうもなるみです
秋ですねいいですね秋といえばあの最近周りの人がすごいバチェラー見てる人と見てないそれを彼ですよはいはいはいはい分かるとか多分最近終わったばっかなんでしょうねサードシーズン的なものが産んで終わった後にめちゃめちゃ周り見てたつってて凄かったって言ってんですよ女の人とかわかるのかなと思ったけど結構僕らぐらいのおじさんもしっかり見ててみてますねホワイト感想を言い合ってあれはひどいみたいなあれはひどいですよね我慢な人線で浜名行くよ
僕はどう思う多分あのいわゆるリアリティーショーが苦手派なんすよねあの照らされ妻に巻いたスタジャンですかはいあのスタジオに戻る時は歩いていいんですよそそあのジョギング中にマシンのスポーツジムのマシンで走りながら見てるけど話が住んでる VTR の時は走る二条で得意さんとか山ちゃんとかまた来れる時は歩くっていうねそのインターバルがすぐ心地よくて見てたんですけどとはいえそこまでハマれなかったなっていう頑張ってみたんだけどねでマフラーも落ち着かないけど足もう全くいけない口出てけない口付かのんなんですかねで古くはあいのりあいのりね俺もありのりがいけない口だったんだよね古くはあいのりテラスハウスがリアルなんだろうリアルドラマと言うかそうあの一般の形で
割となんですかねその場のノリで住んでるみたいな感じなんでしょうけどね僕はもう完全に見れないすねも全く見てないです何なんでしょうねそのさ一方では物凄いシリーズはいただけないですか楽しいってはいけては多分今天そしてすごいよく出来てると思うんですけどおもしろいのも分かりますなぜか音響かないように響かないですよね
そうすね少しだけあるのか純粋さが足りない僕ら空扉が開かない人があーだこーだ言っても最初にどうでもいいのではないかとそう思ってしまうとそれもあるかもしんないね別にもあろうがなかろうが別にそこは何でもいいと思うんですけどものか映画とか見たからそうじゃなくてなんだろなんだろうねで僕に最近発見したんだけど楽しめるリアリティーショーがあったんすよのそこへ行く前にあちら3の感想を見ました走らせる犬ないですよさみました僕全く見てないんですけど噂で聞きましたここから始まるバチェラー3で見てない二人の感想を言い合うこうなるほどいいですねいやほんまにひどいよねあれはね
何だっけあのほんまに何だっけ長友公文とか喜ぶみたいなやつでチラ見しただけなんだけど僕あまりわかってないんですけど僕の周りにいる人々の彼方3これから見る人は効かなくてもいいです板見てるでしょそんな投げやり聞いてみてそうで言うと僕の周りの音は一回も見たことないのでちょっと見ただけですよ男の人が女の読み取りあんですねそうですねみたいな最後一人女の人がそのバチェラーという男性と付き合うのかなそれでめでたしめでたしみたいな感じなんでしょうね
僕の知り合いが言ってたのはの女性が入ってたのは男が全然もうあんなやつ取り会いたくないでしょ全体がだめだとそう男が最悪すぎだとそっかそっかあとなんか途中で一番最後は結構来そうなんかね全部ひっくり返るような糞っぷりは楽しいって言うねそうするねよく見たんですけどお家みたいなちょっと何をしたらお花渡すね
あれは僕も完全にまた聞きですけどずっと最初からいんぐまいて女の人が殺されてたのに結局そっち行って振られて2番目に入ったんでしたきてねでも速攻で別れて1番目に入ってたみたいなんでなんすかねゆうことその一番最初に振った女はなにそれは他に行ったらちょっと
ここに行くなら私んとこ来てよみたいな娘とかよくわかんない男がしゃべってることが結構めちゃくちゃであのちょっと長友公文みたいななんかそういうような長友だったか名前忘れませんがそれめちゃくちゃなりにちょっとクセのある喋り方だからみんな結構真似できて面白かったみたいなんじゃないすかほんまに真剣に考えたんですけど見た後言ってましたけどね待っていうのもありが入ってるんだよいつもありがとうよく分かんないんだけどけど我々はそんなに楽しみねでオススメしたい reality 星4レアリティそうと言うかねこないだ言ってみたのが自分の飲み会を全部録音したんですよはい3時間前友達と四人目の中のハエ四人で飲んだと3階を3時間録音したんですよね
後で聞きながら飲むのジョギングしたりとかそうやそうやねたりとかするとめちゃくちゃ面白いですね面白いあの話がさはいどんどんあちこち飛んでいくわけよはいその脈絡の無さも面白いし後古いくだらないことが立ってんだよねそれは後でもう1回聞くと面白い笑っちゃうんだこれすげーリアルなので飛びそうだよそれすごい楽しめる3時間ぶんとったんですけどこの後1次改訂版1時間着ながら走ってたらあっという間に1時間経って十キロ待ってましたなるみさんは俺じゃないですか
違いがそんなに歩けど歩けど豹変したりしないからまだいいんじゃないですかこれがもっとねなんだか普段は紳士だけどすげータイヤお酒飲んで最悪なやつになっちゃう人とかだったら結構我々をグダグダになるだけじゃないですか妄想するねまあでも今時そんな音が茶飲んで変わる人もいますよただいますが足りますかねもう7回一死はみんな普通にお酒飲んでも何もから9でただ同じことを何度繰り返したか言ってるんですけどちょっとテンション高めでねその話を変える面白いで聞くと面白いですかこれはのすごい手軽なリアリティーショーになってんすよ普通に面白いでこの度コンセントからみんなに聞いたんすよねかえつらホンダ機械設計もらってるのでこれは面白いねつって
それ何なので ID 衝撃の方にハマれない人はそっからスタートするといいのかなっていうそれいいですね暇な日だあの先日伊東第13回山なるみさんも含めて後何人かねご飯行った時あったじゃない共通の友人とかで14人ぐらいで後は行きましたね僕最近ってかその日の夜にふと思い出して笑ったのがなんか大工さんのあれはノースフェイスコナン歌の服のロゴがすぐちっちゃくて大地さんにあれなんか服のロゴちっちゃくなりました時に比べていうの僕に書いてそれを思い出してあれは面白かったなぁと思ったが聞けるわけないどうでもいいこれ誰がしっかり残ってんだよねそれをまた3日宇良はいつと
ちょっともしばったり催眠術記録としていいなと思ってうんでも聞きたくないけどな僕はそうその消えもの水物だから聞いてはいませんでもねなんかねすげー楽しかった飲み会ってもうね動画に撮ってまた映画みたいに見たいですね私ね楽しかったと願いしといたよそうそうそう確かにいいすねえーリアリティーショーでもしようと言うんだったらなんか途中で人が倒れたりとかしなくて大丈夫だよねあの海はリンスをちっちゃくなってないゲラゲラゲラあとねたまにグラスに氷入れてお酒入れてか何かなみたいな音も入ってて心地いいですよはい何か見せそれを真剣にずっと聞く気になんないすけど流しの時に見づらいのかちょうどいっすね後眠れない時になんとなく流してくればね僕の友達
今の増田聡さんて人いるんだよあの出張地方の出張いただき見惚れるほど maru-jan 5日の夜必ず僕らりのんの飲み会の音を聞きながら寝るみたいに居る入ってまして何回やんですか大丈夫か相当くらいですよねその一人の空間して来てるの寂しい空間がいるって例えば Amazon Echo Alexa してみたいなったら確かいいんじゃないかな賑やかになって鳥貴族たはがやが屋からそういえばこの前はいつかさが家に帰ってシーンとした枕ねあさみじゃない漢字まずはい飲み会の BGM かけてみたいなんじゃないと思ったそれでもやっぱりさっきもいますが質が高い飲み会
取らないっていうか継続なのかどっち勝ったのかわかんないけどあの聞きたくない感じにならないからいいんですねあれだよねもちろん初対面とかじゃなくても何度も何度もない番の人たちだから入れるといいんじゃないですかそれともね話があっちこっちいいともかぶっちゃとわかんないから僕はねさん四人オススメサイト数何やってるんですけど最後にんがベストですはいはいあとあの相手に知らせずに録音するのはやっぱまなやなんでまさすがにねそうそう駄目ですねすげー仲良い友達で iPhone 真ん中に置いてった方がいいんじゃないすかなるほどそのリアリティーショー面白い面白いすよそれはそれは僕はかろうじて楽しめる今モリアーティそうだなってそれは何で楽しめるんでしょうね自分の声をなんだか自分の匂いを嗅ぎたくなるみたいの近いですかなそっちのかななんだかんだか脇の匂いとか書いちゃうのって
安心するらしいですよそうなんだななせするかよくわかんないすけど何だろうねあの結局一番楽しいコンテンツって何ですかねあの mixi の赤い文字の数値とかさ自分の知り合いの SNS をするしたら知り合いが何してるかとかなんか知り合いの情報とかねとても好きな人から LINE とかなそういう方が一番混んでくださいよじゃねーか糞一回かもしんないすねでもそれなるみさんがいない時の回聞いても楽しくないとね多分動だロボボやってるから行けなかった時の聞いてみたいですねごめん今日行けなくなったから録音しといてそれどうなんだろうそれ面白いの議事録みたいなそうそれじゃあさあこの夜コンセント夏目さん渡すからちょっと聞いてみてあのどっちが楽しいか祈りと来れそうだったら絶対そっちの方が楽しい気もしますけど
でもそんなに楽しくないじゃんなんかそれって自分が楽しかったねと記憶と結びついて恐れもあるね楽しかったり自分がそこ行ったらこういう話するなとかできるからすげー楽しかったしかつちょっと教えてるじゃないですか飲んでるからそのそれぐらいがいいんじゃないかな気もするんであれも自分がいなかったらどうなのかと聞いてみたいな実験としたより楽しめるかもね全く展開読めないからさあの自分が入ってると思い出し思い出した思い出してくるのも面白いねなるほどね是非じゃあ今度僕らでもやってみても面白いか
よくここまで聞きました偉いですね
多分これあれじゃんじゃか映画館で字幕字幕でのエンドロールの後ずっと見てるタイプの人じゃないすかね僕にある水に生えてきたっちゃうんすけどでもやっぱ隣の人も座ってる市城内くらいからしょうがなくさよね見てるようですね英語だと何を見てるんですかねみんなあれじゃんですか様方と眠いなあまだ立つ場面じゃないなーみたいなしたいんだけど真ん中のだしな子座ってんのみたいですか晴れ DVD とかだったらもう最後にキスじゃないと僕実は他は最後まで楽しくて何で一本の映画作る時にここまで人が関わってんだなぁとかあとこういう会社が関わってるとかはいはいはい例えばじゃあ何だろう一生おさんがめちゃくちゃ多いからじゃあファッションこだわってたとこのブランドが協力しようかなとかねちょっと足が面白いねとか
日本語だと文脈分かるのでとかじゃあ知り合いいないかなと知り合いがたまにいるんだよねそしたらちょっと興奮するよねもいるいる男の人ですかの未来なんでもたまにあるねそうあのシンゴジラの来ればみたいなそうそう安値なのは見てて良い方が確かに見ちゃうなよかなと思うわけわかんないもんね例えばジョジョの奇妙な冒険アニメがありましてあれすごく面白いのがこの前第5部変わったゴムの中だと無駄無駄無駄ってよくジョジョってそういうのがあるじゃないですか有名なセリフと言うかなんかパンチする時の掛け声みたいになるんですね
太鼓部が一番長くてジョルノジョバーナが無駄無駄無駄って言ってどっちだっけなジャンプだとゴールページで中華単行本だと7ページぐらいにはたって無駄無駄無駄無駄無駄5ページで何だっけな一回だけは違うなもっとだなんかすごい文字の無駄無駄無駄パンチするシーンあるのでそこらに向かってそこがすごく前住所の中で一番オラオラ無駄無駄ってよく言われるんですけどそこが一番長いですよそのページスライムだって俺も揺れでジョジョ5部のアニメがあったんですけどそれのエンドロール
僕はすごい一個見つけて面白かったのがその回だけ無駄無駄原画っていうクレジットがあって
あの作画原画作画の人の数が全然違うんすよどうとムラムラ原画の作画の人が映ら当てるととそうそれは僕の風ですどういうことするとたぶんプロデューサーがそれって普通のはプラスの人達が初心に発注してるんだよかく人とあの漫画のアニメので書かなきゃダメなんでも船無駄無駄のところだけ書いてる人たちが別 LINE 12分だけで熱くそのシーンを描いてるとねそれはおそらくプロデューサーさんがここは所の中でもここだけはもう大事なんですっていうの激推ししてでもおいもうんそうだそうだここちゃんなんか手を出した卵からだと人件費も多分4枚5枚か買ってかけてもいいんだそうだそうだあって強されてもその手厚いさあのエンドロール見せることによってよりすごさもねそう伝わるしそう
僕見て思ったもうそれ人に言いたくなっちゃうね痛くなっちゃうと下見に行っちゃうもんだとかっていうのは話すこれはちょっとボーナストラック魂に入るんすかこれボーナストラックは何かね多分僕が編集を結構8 BGM とかを焼き増しコピペコピペで入れますよね今まで編集したの種って書いて編集したりしてて結構つぎはぎになってるんでしょうねその結果がこの前なるみたいに指摘されたのは後ろにいっぷんぐらい空白入っちゃってたんですよねそうしましたねなぜか多分それなんかの多分来を編集ツギハギる女決まんけどこれ Bonus Track じゃねあの一瞬終わったかに見せかけて勝ったみたいなんだこれは歌いですね聞いてる人からしたらだって美味しいとかで再生してて次の行くかなと思ったらまだシーンってなって2日の餌を終えたよなんかみたいな
馬鹿ね僕好きなビートルズの最後のアルバム最後の2回目かな二つ目のアビーロードっていう超有名な一番の傑作てる言われてるアルゴますけど最後に入ってんすよねどんぐらい間が空くんすかそれ結構くんのやつは1分ぐらいあるのかなでポールがいきなり何て書き方めちゃめちゃかっこいいですよねまあそれと僕を好きなのは BUMP OF CHICKEN ユグドラシルという一番売れたアルバムがありましてそれの一番最後にそれこそ1分ぐらい間が入っておとがめはーと BUMP の人たちが違うアイドルグループみたいな子で
始まるのが理想なんだ結構あるんだねそういうのねボーナストラックですね裏があったりボーナスややこしいの

実験その2 オメガシスターズの音声を文字起こししてみる

「【ドッキリ】マイクラで他人のフリして荒らしてみたwww」を文字起こししてみます。
https://www.youtube.com/watch?v=WNrRF36Z3ag

実験その2 結果

オメガシスターズの2人の話し方は結構イレギュラーなところがあり、会話が抜けてしまうところがかなりあるようです。
良く見積もって5割ぐらいの文字起こしとなっています。
(「たけし」は剛、健として聞き取れているようですww)

出来たファイルの内容は下記の通り。

お願いです今日はりゅうちゃんにドッキリを仕掛けていきたいと思います
りこちゃんと一緒にマイクラをするのですがその時にでも変なやつが入ってきてマイクラを妨害してきたらリオちゃんはどうするのか検証していきたいと思いますもちろんそれ変なやつを操作するとはりんちゃんとあれやってるお願いとアメリカにある人今日はねマイクラって知ってますかあの四角い箱のやつですよねそれはいくらかね5月で70周年なんだってやめたということで今日は10周年記念にマイクラクラシックっていうのが無料でできる無料エロ共有すれば複数人で遊ぶことができるんだ早くやりたいよそれでは流行っていきましょう
なんかさーおっさんだよもう飯すってね文字をこの世界この世界でねそう繰り広げ行こうと思うんですけどどうするや分担はブロックで落としにするわ俺をなんとかしたじゃあ後から行くよ行きますエロ
ドッカンガチャドッカン美恋魂文字どうやってたから女ってどうやって作ればいいよ女は女だよめって何を考えているという字どういう字だっけ女ってこういう漢字がだいたいなればいいんでしょそうだよね完璧なんだよ何か文句は俺よりもねまだできてないよ嘘今ゆっくりゆっくりやってるすごい綺麗な綺麗なお手
あんたは真剣真剣真剣にやんないでできる前で俺は今止んだけどそうだよね猛烈だから間違えちゃった私は今ねもうしんどこにあんだっけ
もう俺は三大大吉ほらできたおろしおろしおろしあと3分だね俺は待って私泣いてんだっけおめ子だし俺なんか今スーツ穴に静かにしても喋んないでよしきりやってんの分かんない今日は最後に
ちょっと高いとこか見ないと見てきてちょっと待ってまだ時間があるからはいけない時期なんだからこれは加工されてるよどうしたでしょ
いないばあいないで本当に俺の俺の俺の強されないで剛誰だよ何で入ってきたやっぱねやっぱ俺乙女よね目を頑張んないといけないかも
化粧落としても入ったり入ったりするからちょっと待って遜色たりするんだけどそれで俺に聞きたいことがあるようで戻ってくるちょっと待ってるからやめろや間違って
ねえマジで叫んだよ剛さあどっから入って来てんのこのサーバーに来てるのよねこうして祈ってかわいそうだね名前も知らねえなあ一番右の歌
あのピンクのさあハートつくやつは何だったっけはハート作ろうとして作ろうとしたのお前はお前はもう少しで雨室の動画
年間でしかましたどうやって作ったのがチョレイの華麗なるタブの変更の底値
一文字で逢坂壮ドッキリ大成功りゅうちゃんは俺に言われるをしないと入れないのに健が入ってると思ってました

文字起こしのWebサービス作れるのでは??


そこそこの精度で文字起こしできるため、Webサービスとか作ったらヒットするんじゃないかと思ったのですが、すでにあるみたいですね。
writer-app.com


以上です。

2019年11月のアプリ収益

2019年11月のアプリ収益です。

2019年11月のアプリ収益

広告収入 : 2820円
アイテム収入 : 1353円

合計 4173円でした!前月より1943円減少。残念!

4月からの収益の変化は以下のような感じです。

今月は、広告収入はまあまあ。アイテム収入が減っちゃいましたね。コンスタントに5000円稼げるように頑張ります。

体重管理アプリを作っています。

flutterを勉強して何か作れないかなと思い、体重管理アプリを作っています。

f:id:kohshin1977:20191203204323j:plain:w250

せっかくMBPを買ったのでiPhoneでもアプリを作って来年のリリースを目指したい。

以上です。

2019年10月のアプリ収益

2019年10月のアプリ収益です。

2019年10月のアプリ収益

広告収入 : 3303円
アイテム収入 : 2813円

合計 6116円でした!前月より1654円上昇。過去最高益の達成です!

4月からの収益の変化は以下のような感じです。

今月は、広告収入が順調に伸びてくれました。来月はここまでうまくいかないかもしれません。5000円ぐらいにとどまって欲しいかな。

ということでOculus Questを買っちゃいました!

f:id:kohshin1977:20191103003851j:plain:w250

今のところソフトを3本買って遊んでます。

一番面白いのはThe thrill of the fightですかね。ボクシングのゲームなんですが、1ラウンド3分なので本当に疲れます。汗でビショビショになるレベル。シリコン製のアイカバーを注文しましたwwwこんなゲーム待ってたって感じですね。
BEAT SAVERはまだそんなにやれてないです。

以上です。

Flutterでボタンを押下するとウィジェットが増えて行く画面を作りたかった。(続き)

昨日書いた記事の続きです。

floatingActionButton を使ってみる

floatingActionButtonは右下に表示されるボタンです。

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<Widget> list = <Widget>[
    Container(
      child: Text( "Hello! Flutter!",
        style: TextStyle(fontSize:32.0,
            color: const Color(0xFF000000),
            fontWeight: FontWeight.w200,
            fontFamily: "Roboto"),
      ),
      padding: const EdgeInsets.all(10.0),
      alignment: Alignment.bottomCenter,
    ),
  ];

  List<Widget> _items = <Widget>[];

  @override
  void initState(){
    super.initState();
    _items = list;
  }


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body:
      ListView.builder(
        scrollDirection: Axis.vertical,
        shrinkWrap: true,
        itemBuilder: (BuildContext context, int index){
          return _items[index];
        },
        itemCount: _items.length,
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: buttonPressed,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }

  void buttonPressed(){
    list.add(
      Container(
        child: Text( "Hello! Flutter!",
          style: TextStyle(fontSize:32.0,
              color: const Color(0xFF000000),
              fontWeight: FontWeight.w200,
              fontFamily: "Roboto"),
        ),
        padding: const EdgeInsets.all(10.0),
        alignment: Alignment.bottomCenter,
      ),
    );

    setState((){
      _items = list;
    });
  }
}

こんな感じになります。

f:id:kohshin1977:20191012100801p:plain:w250

ボタンを押下していくと増えていってスクロールもできるようになりました!

f:id:kohshin1977:20191012101221p:plain:w250

以上です。

Flutterでボタンを押下するとウィジェットが増えて行く画面を作りたかった。(結局作れず)

Flutterをやり始めたので調べたことを書きます。

表題の通りなんですが、ボタン押してウィジェットが増えて行くような画面を作りたかった。

で、以下のように作ったのです。

import 'package:flutter/material.dart';

void main() {
  runApp(new MyApp());
}
class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Generated App',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
        primaryColor: const Color(0xFF2196f3),
        accentColor: const Color(0xFF2196f3),
        canvasColor: const Color(0xFFfafafa),
      ),
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);
  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<Widget> list = <Widget>[
    Container(
      child: Text( "Hello! Flutter!",
        style: TextStyle(fontSize:32.0,
            color: const Color(0xFF000000),
            fontWeight: FontWeight.w200,
            fontFamily: "Roboto"),
      ),
      padding: const EdgeInsets.all(10.0),
      alignment: Alignment.bottomCenter,
    ),
  ];

  List<Widget> _items = <Widget>[];

  @override
  void initState(){
    super.initState();
    _items = list;
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('App Name'),
      ),
      body:
        new Column(
            children: <Widget>[
              RaisedButton(
                  onPressed: buttonPressed,
                  child: Padding(
                    padding: EdgeInsets.all(10.0),
                    child:Icon(
                      Icons.android,
                      size:50.0,
                    ),
                  )
              ),
              ListView.builder(
                scrollDirection: Axis.vertical,
                shrinkWrap: true,
                itemBuilder: (BuildContext context, int index){
                  return _items[index];
                },
                itemCount: _items.length,
              ),
            ]
        ),
    );
  }

  void buttonPressed(){
    list.add(
      Container(
        child: Text( "Hello! Flutter!",
          style: TextStyle(fontSize:32.0,
              color: const Color(0xFF000000),
              fontWeight: FontWeight.w200,
              fontFamily: "Roboto"),
        ),
        padding: const EdgeInsets.all(10.0),
        alignment: Alignment.bottomCenter,
      ),
    );

    setState((){
      _items = list;
    });
  }
}

画面は以下のようになります。ボタンの下にListViewがありそれが増えて行く感じ。

f:id:kohshin1977:20191011204256p:plain:w250

ボタンを押下して行くといい感じにテキストが増えていったのですが、画面の境界を越えると、、、、

f:id:kohshin1977:20191011204809p:plain:w250

下の黄色い部分の文字は、「BOTTOM OVERFLOWED BY 51 PIXEL」と書いてあります。
ListViewはスクロール可能なはずなのですが、ここではスクロールできません。

SingleChildScrollView を使ってみる

ネットで調べると、SingleChildScrollViewの中に入れたらエラーは起きなくなるよ。という情報が。(ソースは忘れました。ごめんなさい。)
で、中に入れたソース。

import 'package:flutter/material.dart';

void main() {
  runApp(new MyApp());
}
class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Generated App',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
        primaryColor: const Color(0xFF2196f3),
        accentColor: const Color(0xFF2196f3),
        canvasColor: const Color(0xFFfafafa),
      ),
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);
  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<Widget> list = <Widget>[
    Container(
      child: Text( "Hello! Flutter!",
        style: TextStyle(fontSize:32.0,
            color: const Color(0xFF000000),
            fontWeight: FontWeight.w200,
            fontFamily: "Roboto"),
      ),
      padding: const EdgeInsets.all(10.0),
      alignment: Alignment.bottomCenter,
    ),
  ];

  List<Widget> _items = <Widget>[];

  @override
  void initState(){
    super.initState();
    _items = list;
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('App Name'),
      ),
      body:
      SingleChildScrollView(
        child:
        new Column(
            children: <Widget>[
              RaisedButton(
                  onPressed: buttonPressed,
                  child: Padding(
                    padding: EdgeInsets.all(10.0),
                    child:Icon(
                      Icons.android,
                      size:50.0,
                    ),
                  )
              ),
              ListView.builder(
                scrollDirection: Axis.vertical,
                shrinkWrap: true,
                itemBuilder: (BuildContext context, int index){
                  return _items[index];
                },
                itemCount: _items.length,
              ),
            ]
        ),
      ),
    );
  }

  void buttonPressed(){
    list.add(
      Container(
        child: Text( "Hello! Flutter!",
          style: TextStyle(fontSize:32.0,
              color: const Color(0xFF000000),
              fontWeight: FontWeight.w200,
              fontFamily: "Roboto"),
        ),
        padding: const EdgeInsets.all(10.0),
        alignment: Alignment.bottomCenter,
      ),
    );

    setState((){
      _items = list;
    });
  }

}

ボタンを押下していくとエラーは出なくなりました。
ところが、スクロールはしません。(正確に言うと、ボタンの部分だけスクロールが効いている感じ)

f:id:kohshin1977:20191011225603p:plain:w250

もう疲れました。

今回はここまで。またやる気が出たらやるかも。詳しい人がいたら教えてくださいm(__)m

以上です。

2019年9月のアプリ収益

2019年9月のアプリ収益です。

2019年9月のアプリ収益

広告収入 : 2371円
アイテム収入 : 2091円

合計 4462円でした!前月より635円上昇。

f:id:kohshin1977:20191001202001j:plain:w250
2019年9月


4月からの収益の変化は以下のような感じです。

広告収入はやや微増です。
アイテム収入は水物なので、広告収入が増えていってほしい。


以上です。