最近、BOOK WALKERで電子書籍を購入しています

最近、といいますか、今年(2022年)にはいってからBOOK WALKERでも電子書籍を購入するようになりました。

KADOKAWA直営電子書籍サイト BOOK☆WALKER│無料試し読みあり

2021年の11月22日から11月30日の期間、KADOKAWAの80年代以降の社史である『KADOKAWAのメディアミックス全史 サブカルチャーの創造と発展』がBOOK WALKERで無料配信されました。
『KADOKAWAのメディアミックス全史 サブカルチャーの創造と発展』は、もともとKADOKAWAグループの従業員に配布されたものでした。Twitterなどで評判になっており、読みたいものだと思っていたところ、BOOK WALKERで配信されるということでした。
『KADOKAWAのメディアミックス全史 サブカルチャーの創造と発展』電子版を11月30日まで無料配信中

読みたい本がそこで配信されたということで、BOOK WALKERに登録。

以降、BOOK WALKERでも電子書籍を購入するようになりました。

特に、2022年の正月のセールでは、ずいぶんと書籍を購入しました。
講談社のまとめ買い50%オフセールとBOOK WALKERのコイン50%還元が組み合わさって、ずいぶん求めやすい価格になっていました。
読んでみたいと思っていた『興亡の世界史』や元号(年号)を調べていたときにちょこちょこ読んでいた『天皇の歴史』をまとめ買いしました。

アプリの使い勝手も良い感じです。
とはいえ、下端にならぶ5つのタブ「ストア」「読み放題」「本棚」「マイブック」「設定」のうち、ほぼ「マイブック」タブのみを利用しています。
そこで、「読んだ順」にならべた本を、何冊か少しずつ読んでいくという使い方で読んでいます。

2022年4月開発状況

Repete Plus

4月は、Repete Plus、Repeteとも開発が進んでおりません。
Flutter、Chrome extensionに時間を費やしました。
(3月とほぼ同じ状況となっております)

Repete

3/14からAdMobが広告表示が制限され、ほぼ停止となっておりました。
4月になってもその状態はつづいていました。ひと月たった15日ごろには解除されるのではと思っていましたが、制限は継続。
4月28日になって、広告表示制限が解除されました。
ほっとしました。

Chrome extension

先月から作成していたChrome extensionが完成しました。
「まず、テキスト全体をぼかし、選択したテキストは明瞭に表示される」拡張機能です。
名前は、「Clear Text in Fog」としました。

Clear Text in Fog – Chrome Web Store

解説ページ

音声と本文の両方が提供されているWebサイトでの使用を想定しています。本文テキストをぼかしておいて、ぼかした本文をたどりながらリスニング。聴き取れない箇所が、ぼかしのまま残ることで、実際には聞き取れていない箇所がわかるのではないか?と考えました。

作っている最中に、Chrome extensionはiPhone/iPadやAndroid機などモバイルでのChromeでは対応していないことを知りました。Chrome extensionなら、小ネタをさらっと作成してタブレットで試せると考えていたので、がっかりしました。

今回のChrome extension、試作は1週間ほどでできましたが、その後、調整するところが色々と出てきて、4月なかばまでかかりました。

完成したので、Chrome web storeに登録。
2度のリジェクトを経て、登録されました。

Clear Text in Fog – Chrome Web Store

リジェクト1度目は、プライバシーポリシーのページへのリンクがおかしい、というもの。
ごめんなさい。間違えていました。
修正して再提出。
リジェクト2度目。

Spam and Placement in the Store

Functionality: Do not post an extension with a single purpose of installing or launching another app, theme, webpage, or extension. Extensions with broken functionality – such as dead sites or non-functioning features – are not allowed.

Spamという文字が目に入ってショック。機能が壊れていると判断されたのでしょうか。
機能説明の文章を修正して、再提出。

すると、今度はなにごともなく、審査をパスして、Chrome Web Storeに並びました。

Flutter

今回のChrome extensionで作成した機能は、もともとFlutterで実装しようと思っていました。
Flutterに慣れるにあたって、ちょうど手頃な題材だと考えていたのです。

しかし、Chrome extensionで作ってみたところ、これ良い!という高揚がなかったので、Flutterでの作成は、いったんとりやめです。
Chrome extensionでは、モバイル機で利用できなかったので、元々の構想にあった「指やペンでなぞる」という要素を試せていないので、この要素を実装したら、また手応えがあるやもしれません。が、いまはとりやめます。

オーディオプレイヤーを実装することにしました。
Flutter packageを調べると、以下の3つが人気を集めていました。

just_audio 0.9.20
audioplayers 0.20.1
flutter_sound 9.2.10

exampleを試してみて、just_audioで進めていくことに決定。
just_audioのプレイヤー部分のソースコードを見ると、iOS部分ではAVQueuePlayer、Android部分ではSimpleExoPlayerを使用しています。
FlutterはWebでも利用できる、最近ではWindowsでも利用できると目にしました。しかし、こうしてpackageを見ると、それぞれに対応した処理を用意しなければならないというのを目の当たりにしました。packageが各プラットフォームに追随するのは、とてつもなく大変なのではなかろうか、と思いました。

英語学習

4月は1日平均60分。
横山雅彦/中村佐知子「英語のハノン 初級」Unit 5 – Unit 6。
ELSA Speak。1日10分目安。
花本金吾「基礎英作文問題精講」で英作文。1日10問ずつ、ただし間違えた問題は次の日に繰り越しでの10問。
パス単の英検2級。

中国語学習

ほそぼそ続けています。
4月は、1日平均31分。
準1級トレーニングブックの作文。2周目。1日10問ずつ、ただし間違えた問題は次の日に繰り越しでの10問。4月16日に2周目完了。以降3周目。
李軼倫 著『はじめよう中国語音読 中級編』12課〜15課。



2022年3月開発状況

Repete Plus

アップデート(version 9.7.2) – ボリュームスライダーの幅をすこし広くしました

3月は、Repete Plus、Repeteともほとんど開発を進めていません。
Flutter、Chrome extensionに時間を費やしました。

Repete

3/14からAdMobが広告表示をほぼ停止。
その数日前?に、Repeteの広告を押してしまったため、開発者による不正行為と見做されたのかもしれません。ピンポイントで気になる広告だったので、つい押してしまったのです。

Flutter

Udemy

Udemyの講座、完了。
The Complete 2021 Flutter Development Bootcamp with Dart

一つのファイルに一連の処理を長めに記述するところから開始して、まとめられるところはまとめて別のファイルへ移動、ひとつひとつのファイルは簡潔なものにしていく、というリファクタリングの過程をステップバイステップで示しながら進めていくところ、とても参考になりました。

講座動画初出時から時間が経過して、Flutterのアップデートが進んだので、講座とは記述の仕方が変わっているところがかなり出てきています。
後半、Web APIとの連携などWebサービスとの連携では、Webサービス側の連携の仕方が変更されているので、Webサービス側のドキュメントをよく読み込む必要があります。

Firebaseとの連携

Get to know Firebase for Flutter
Google提供のチュートリアル。
Flutter+Firebaseで、チャットサービスを作成。
あっさりチャットが実現できて、おののきました。

Flutter公式サイト

Flutter documentation
Flutterの公式サイトのドキュメンテーション。
とても充実しており、しかも、情報がまとまっていて探しやすい!

Chrome extension

Flutterに少しなじみができました。
ここで作成しようと考えたのが、「テキストもしくは画像をぼかしておき、指やペンでなぞった箇所がぼかしが解除されてはっきり表示される」アプリです。
曇ったガラスを拭くとそこだけ見通せるイメージです。

中検2級を勉強していたとき。リスニング問題。2分ぐらいの文章を聞いて、その後の5つの質問で正しい答えを選択する、というものがありました。
解答ページには、本文とその後の質問が記されています。リスニングの際にはなんと言っているのかわからない問題も、解答にある本文テキストを見ると、容易に内容が理解できます。特に中国語は漢字で記されているものですから、内容が掴みやすいです。それで、わかった気になってしまい、復習がおざなりになっていました。
そこで、解答の本文テキストをぼかしておいて、ぼかした本文をたどりながらリスニングすれば、実際には聞き取れていない箇所がわかるのではないか?と考えました。
iPadでCLIP STUDIO PAINTを使って実験。
ぼかしをペンで拭き取って文字が見える様に面白みがありました。
聞き取れていない箇所が多数あるのに気づけました。

しかし、リスニング問題の勉強では、最終的には、本文後の質問を聞いて「書き取り」を行うという形をとりました。(本文全ての書き取りは大変すぎてやりませんでした)
「書き取り」は気力を消耗しますが、勉強になります。

「ぼかしておいてペンで解除」アプリの構想は、良さもあったけど、ひとまず置いておこうという位置にありました。

Flutterチュートリアル中。少し慣れた段階でアプリを作っていくなら、「ぼかしておいてペンで解除」アプリが良いのでは、と考えました。
チュートリアルを一通り終えて、作る段になって、「ぼかしておいてペンで解除」アプリ、Chrome extensionで作れるのでは、と思い至りました。
ささっと作って、iPadのChromeなどでVOAのサイトなどで、使ってみると良いのでは、と考えました。(その後、作成中に、Chrome extensionはiPhone/iPadやAndroid機などモバイルでのChromeでは対応していないことを知りました)

Extensions – Chrome Developers
の解説を読みながら、開発開始。

開発者向けのウェブ技術 | MDN
でDOM操作、javascriptを調べながら開発。
そのほか、なにかあればググってさまざまなWebサイトの助けを借りて作成。

英語学習

3月は1日平均55分。
横山雅彦/中村佐知子「英語のハノン 初級」Unit3-5。
ELSA Speak。1日10分目安。theの発音が改善。
花本金吾「基礎英作文問題精講」で英作文。1日10問ずつ、ただし間違えた問題は次の日に繰り越しでの10問。
パス単の英検2級。

中国語学習

ほそぼそ続けています。
3月は、1日平均39分。
準1級トレーニングブックの作文。1日、新規2問、前日までの直近の問題4問で14日に作文85題1周目終了。15日からは2周目、10問ずつ、ただし間違えた問題は次の日に繰り越しでの10問。
李軼倫 著『はじめよう中国語音読 中級編』8課〜12課。


「Repete Plus」をアップデート(version 9.7.2) – ボリュームスライダーの幅をすこし広くしました

「Repete Plus」をアップデートしました。(version 9.7.1 -> version 9.7.2)

Repete Plusは、語学学習を支援するオーディオプレイヤーです。
無音部分を自動認識し、語学教材をフレーズごとに間隔をあけて再生できます。
フレーズごとに再生・再生不要を設定、再生速度変更、録音機能、テキストメモ機能など多彩な機能で語学学習を助けます。

Download on the App Store

使い方を紹介しているサポートサイトはこちら
Repete Plus – nackpan Blog

変更点

ボリュームスライダーの幅をすこし広くしました

ボリュームスライダーでの音量調整が少しやりやすくなりました。
よろしくおねがいします!

開発者後記

以前から、ボリュームスライダーに気になっている点がありました。
起動時に、音量が最大の場合、ツマミとルートボタンが重なってしまう問題。
そして、スライダーの幅が狭すぎて、音量調整が難しいという問題です。

cab77さんからコメントをきっかけに、いままで気になっていながらもそのままになっていた問題に取り掛かりました。
ツマミとルートボタンが重なる問題は、当初、幅が狭すぎるから起きると思っていましたが、実験してみると、どんな幅でも発生。
あれこれ試したすえ、こちらの記事で書いた方法で問題を解消。

そして、スライダーの幅。
すこしだけ広くしました。
以前は、2~3段階ぐらいの調整でしたが、今回のアップデートで4段階ほどの調整ができるようになりました。

MPVolumeViewのツマミとroute buttonが重なってしまう問題に対処する

iPhone/iPad開発で、Appleが用意しているボリューム調整用のコントロールとして、MPVolumeViewがあります。
オーディオ出力音量を示すスライダーと、オーディオ出力ルートボタンが表示されます。


MPVolumeView | Apple Developer Documentation

Apple Developerのドキュメントによると、MPVolumeViewの親となるUIViewを用意してoutletで結んでおきviewDidLoadに、以下のように記述することで設置できます。

parentView.backgroundColor = .clear
let volumeView = MPVolumeView(frame: parentView.bounds)
parentView.addSubview(volumeView)

ツマミとroute buttonが重なってしまう

しかし、上記の方法で設置すると、iOS 15.3.1現在、アプリ起動時、ボリュームが最大のときにツマミとルートボタンが重なって表示されてしまいます。

また、左端にツマミを移動させると、端まで到達できません。
見目麗しくなく、ルートボタンが押さえにくくなっております。(iPhone/iPadの脇の物理ボタンでボリューム調整できるので、ルートボタンを押さえることはできます)

ツマミとroute buttonが重なってしまう問題に対処する

ツマミとroute buttonが重なる問題にできるだけ簡便に対処したい。
viewWillAppearに移動してみると、ツマミとroute buttonが重なることは無くなりました。

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        
        parentView.backgroundColor = .clear
        let volumeView = MPVolumeView(frame: parentView.bounds)
        parentView.addSubview(volumeView)
    }

しかし、表示される際に、音量0から最大へとツマミが移動するアニメーションが入りました。

ボリュームスライダーに注目を集めようとはしていないので、アニメーションが入ってしまうと気になります。

ひとまず問題を解消する対処

その後、いろいろと試したところ、起動時にツマミとルートボタンが重なる問題を解消、そしてアニメーションが入らない方法がみつかりました。
ひとまずの対処法。

var volumeView: MPVolumeView?

override func viewDidLoad() {
    super.viewDidLoad()
    
    let vView = MPVolumeView(frame: parentView.bounds)
    parentView.addSubview(vView)
    
    volumeView = vView
    volumeView?.showsVolumeSlider = false
}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    volumeView?.showsVolumeSlider = true
}

viewDidLoadでMPVolumeViewを追加。volumeSliderを一旦非表示にして、viewDidAppearでvolumeSliderを表示する、というかたちです。

ひとまず、これで問題は解消しました。
iOSのバージョンが上がった際に、MPVolumeViewの問題が修正されることを祈りつつ、いまのところはこれで対処したいと思います。

2022年2月開発状況

Repete Plus

アップデート(version 9.6.4) – 内部構造を改善しました

アップデート(version 9.7.1) – 原曲再生での曲リピートの挙動を変更しました
* 原曲再生のさいに、「リピート> 曲:再生回数」の設定に従って、再生するようになりました。
* 特定の条件下で、学習時間が不正確に計測されてしまう不具合を修正しました。

Repete

アップデート(version 7.2.4)
特定の条件下で、学習時間が不正確に計測されてしまう不具合を修正しました

Flutter

Udemyの講座、2月の半ばで終わらせるつもりが、まだやっています。
The Complete 2021 Flutter Development Bootcamp with Dart
ほんとに丁寧。ステップ バイ ステップ。
ものすごく平易な英語で話してくれています。しかし、画面と共に操作を指示している箇所はわかるのですが、ちょっとしたアドバイスのところは、なんとなしに理解できているものの、しっかり理解できているとは言い難いです。
この講座が出てから時間が経過しているので、Android Studio、Flutter、Dartに変更があります。それにあわせて、いくつか改修する必要あり。
Web APIを利用するプロジェクトで、うまく接続できなかったりで、ググって設定に文言を書き加えたり。
75%ほど終了。

中国語学習

ほそぼそ続けています。
2月は、1日平均35分
準1級トレーニングブックの作文。1日、新規2問、前日までの直近の問題4問。
李軼倫 著『はじめよう中国語音読 中級編』5課〜7課。

英語学習

英語学習を始めました。
アプリ開発にあたって、ドキュメントや動画の英語をもうすこしスムーズに理解できるようになりたいです。

また、このところ、Repete、Repete Plusでハノンをやっている、というtweetを時折見かけるようになりました。

先月も紹介したkəpǽnさんのtweet。

ハノンはどんな教材なのかしらん、という思いで自分もやってみることにしました。

短い文が音読され、後について発声します。
否定形や疑問形に変形するよう指示があるので、声を出していきます。

最初の文で、often を含む文章が登場します。
iPhoneのメモでEnglish(US)キーボードの音声入力で、しゃべってみると、offeringやawfulと認識されてしまいました。かなしい。

発音を改善しようと、ELSA Speakというアプリも開始。

また、語彙を調べてみると、英検2級の簡単な単語はわかるけれども、難しめの単語はわからない、というレベル。
パス単の英検2級を入れて学習開始。

基礎英作文問題精講で英作文。

2月は1日平均52分



Kindle Unlimitedの一度に利用できる冊数が20冊になっていた

Kindle Unlimited、2016年から利用しています。
契約しているサブスクリプションサービスのなかでも、おおいに活用しているサービスです。
マンガ雑誌、ムック、新書など読んでます。

2021年11月。追加した本が11冊目と表示されました。
それ以前にも、ときおり、11冊表記されることがありました。そのたぐいのバグかなと思っていました。

その後、12月に、さらに別の本を見ようとしたら、入れ替え画面になることもなく追加できる事態になっていました。
ここで、利用できる冊数が増えた?と思い、検索してみると、2021年8月の記事で、
Kindle Unlimitedの同時貸出数、いつのまにか10冊から20冊へと増量。ただしユーザー限定?
とありました。

その後、12月の記事では、
Kindle Unlimited、一度に利用できる冊数の上限が20冊に
とあり、
Amazonのヘルプにも、「Kindle Unlimitedの対象タイトルを同時に20冊まで読むことができます」と記載されるようになりました。

利用できる冊数が10冊のころ、やりくりに困るようになっていました。
読みかけて、ちょっと面白いと思いつつ、途中で止まってしまっている本。
読んだ後で感想というか内容のまとめ書こう、そのさいに読み返すためにちょっと残しておこう、といった本。
などなど、次第に本が溜まってしまい、10冊目の本の入れ替えでしのぐ形になっていました。

そんな状況で訪れた利用可能数20冊、とても解放感がありました。
ちょっと読みたいと思う本をどんどん入れて、読んでおります。

「Repete Plus」をアップデート(version 9.7.1) – 原曲再生での曲リピートの挙動を変更しました

「Repete Plus」をアップデートしました。(version 9.6.4 -> version 9.7.1)

Repete Plusは、語学学習を支援するオーディオプレイヤーです。
無音部分を自動認識し、語学教材をフレーズごとに間隔をあけて再生できます。
フレーズごとに再生・再生不要を設定、再生速度変更、録音機能、テキストメモ機能など多彩な機能で語学学習を助けます。

Download on the App Store

使い方を紹介しているサポートサイトはこちら
Repete Plus – nackpan Blog

変更点

 * 原曲再生のさいに、「リピート> 曲:再生回数」の設定に従って、再生するようになりました。

従来は、原曲再生の際には、曲のリピートは行われていませんでした。
(従来の設定に戻す場合は、 設定> 詳細> 原曲再生中は曲リピートしない をONにしてください)

* 特定の条件下で、学習時間が不正確に計測されてしまう不具合を修正しました


もしRepete Plusを気に入ってもらえたなら、App Storeで評価していただくと、とても力になります!

また、Repete Plusの「設定」>「アプリ開発者にエネルギーを与える」項目では、開発過程を描いた短い動画が表示されます。ストアで課金をすることでロックが解除されます。
語学学習機能には影響ない機能ですが、見てもらえると開発者がとても助かり、喜びます。

Repete Plusが語学学習の助けになれば幸いです。
これからも、Repete Plusをよろしくお願いします!