iOS:バージョンアップの申請をしました

問題集アプリに問題を74問追加

2/16日の記事の通りアプリの1本化を進めていますが、今回は本気度?をアピールするために
イベント関連の問題をvol1に追加することにしました。
 
そして本日、復習ページの作成や問題の校正と実機での動作確認が終了したので
アップルに審査の依頼を申告。これで後戻りはできません。
 
問題数は74問増えて、以下の様に288問(IDは0〜287)になります。
写真
気になっていたリストのソートですが、私のiPodでは1秒くらいかかります。
やはり400問を越えるとリストは避けた方がよいのでしょう。使い勝手も悪いですし…。
まだカテゴリごとに問題を選択できないので、不便をお掛けしますが今しばらくお待ちください。
 
アプリの一本化に合わせてアプリの紹介ページにもお知らせを出しました。
予定では3月から300円に値上げする予定でしたが、システムの変更が完了するまで200円で
行くことにしました。
→iPhone wave:jQuery問題集
 
アップデートの審査は比較的早く済むので10日くらいでアップデートされると思います。
 
 
 

iPodユーザーは少ないの?

iTunes conect(アプリ管理用のwebサイト)が更新されて、ダウンロードした環境が
分かるようになりました(以下の画像のような感じ)。
スクリーンショット 2014-02-26 1.04.09
 
私はAndroidとiOSでのレイアウトチェックをするため、携帯はandroid
そしてiOSはiPodを所持しています。web関係の仕事をしている他の方も同じなのかな?
と思っていたのですが、上記のような結果となり驚きました。
 
iPodユーザーはとても少ないのです…。なぜ?
iPhoneとAndroid携帯の2台持ち?
iPhoneとAndroid端末(タブレット)の組合せ?
スマホサイトの作成には興味がない?
 
最初はAndroid向けに問題集アプリを移植するつもりは無かったのですが、
この結果を受けて、Androidアプリの作成も勉強することにしました。
android版がどれ位ダウンロードされるかを見れば、状況が掴めるような気がするからです。
でも、他に作成したいアプリが幾つかあるので移植は今年の後半になると思います。
 
 

jQueryサイト:リファレンス更新

サンプルの追加

先週に引き続き、アプリの復習データを作成しつつリファレンスの校正をしていたのですが
幾つかサンプルを追加したのでご連絡。

onメソッド

objectオブジェクトを利用して、複数のイベント処理をまとめて設定する構文で
各イベントハンドラに個別のデータを渡したい時にはどうするかを説明するサンプルを
追加しました。
→リファレンス:onメソッド「複数のイベントを設定するときもデータを渡せます

oneメソッド

一回実行したらイベントの処理が解除されているのを確認するサンプルを作成しました。
→リファレンス:oneメソッド「実行したらイベントの設定を解除

triggerHandlerメソッド/triggerメソッド

triggerメソッドは複数の要素に対応していますが、triggerHandlerは複数の要素に
対応していないことを確認するサンプルを追加しました。
→リファレンス:triggerHandlerメソッド「複数の要素に対応していません
→リファレンス:triggerメソッド「複数の要素に対応しています
 
 

文言の修正

リファレンスではclick()のことをclickイベントと記述していた部分があるのですが
これは正確でないため、clickメソッドと修正しました。
「click()はclickイベントが発生した時に実行する処理を設定するメソッド」なのです。
以前から修正しようと思っていたのですが、修正範囲が広いので放置していたのですが
アプリ作成の今回を切っ掛けに修正しました。だから時間がかかっていたのです。
文言の修正はチュートリアルにも及んでいます。
→チュートリアル:イベント(1)
 
 

チュートリアルを少し追加

上記の流れで、すこしチュートリアルに記事を追加しました。
→チュートリアル:イベント(2)「メモ
 
 

イベントフローについて

イベントフローについて、私が誤解していた部分があったので修正しました。
誤解とは以下の記事のmouseenterとmouseoverの解釈です。
→ブログ記事:mouseoverとmouseenter、mouseoutとmouseleave
 
誤解とはmouseenterイベントなどは子孫要素から「バブリングしてきたイベントを
受け取らない」と解釈していたのですが、これは間違いでした。
 
正しくは「mouseenterイベントはバブリングしない」ため子孫要素で発生した
イベントが上がってこないので反応しないのです。
※日本語のサイトがなかったので英語のサイト
→参考:W3Cのmouse enterの説明の「Bubbles」のカテゴリが「No」になっています。
 
さらにイベントがバブリングするか否かを返すプロパティなども発見。
※Mozilaのほうに日本語のページがありました。
→参考:MDNのevent.bablesの説明
 
 
気が付いた切っ掛けはjQueryの本家サイトの「on」の記事の「Additional notes」
にあった以下の説明。下線部の「not bubble」
The focus and blur events are specified by the W3C to not bubble, but jQuery defines cross-browser focusin and focusout events …
 
というわけでチュートリアルの以下のページを修正。
→チュートリアル:イベントフロー(3)
 
あとリファレンスの該当箇所も修正しました。
文言を修正しただけでサンプルは変更していないので、面倒であれば
確認しなくてもOKです。でも上記のイベントフロー(3)は見ておいて下さい。
リファレンス:mouseover
リファレンス:mouseenter
リファレンス:mouseout
リファレンス:mouseleave
リファレンス:focusin
リファレンス:focusout
リファレンス:focus
リファレンス:blur
 
 
 

jQueryサイト:使用例追加 & 問題集アプリについて

使用例追加

問題集アプリのイベント部分の復習ページを作成しながら、リファレンスの校正/修正を
していたのですが、切りが良いところまで終わらなかったので、代わりに使用例を追加しました。
使用例のページ
 
 
 

問題集アプリについて

問題集アプリはvol1とvol2の2本組みの予定でしたが、1本にまとめようと思います。
というかvol1に残りの問題も詰め込もうと思います。
そしてアプリの構成を以下の様に変更しようと思います(4月末までに)。
 
カテゴリ別の出題 
*******************************
旧)正解していない問題から出題
新)カテゴリから出題
*******************************
「正解していない問題から出題」ボタンは、問題数が100問くらいと予想していた初期段階で
考えた機能で、問題数が200問の現段階でも利用しにくい機能になってしまっています。なので、
カテゴリ別(セレクタ,イベント等)に問題に挑戦できるような機能に変更したいと思います。

 
問題リストの廃止
*******************************
旧)問題リストから選択
新)ID番号から選択
*******************************
これも問題数が100問くらいと予想していた時の機能で、200問の現段階でも使いにくい
とおもいます。ソート機能を付けたものの、ID100あたりの問題にアクセスするためには
結構スクロールしないといけません。問題数が400問になったらなおさら…
なのでIDを入力して、その問題を表示するようなシンプルな機能に変更したいと思います。
 
 
復習データの保持数を100に
現在は200問だけなので問題ないのですが、400問を越えてくると少し不安なので
メールで送信できる復習データの上限を100問にしたいと思います(古い順から削除)。
アプリの説明サイトでは「こまめな復習」を推奨していますし。
 
 
 
一本化を考えた経緯
アプリをリリースしてから約1ヶ月がたち、振り返って考えてみたのです。
初めは「よく利用する」「間違いやすい」問題だけを集めた問題集にする予定で「100問」
くらいのボリュームを予定し、問題作成の前にシステムから組み始めました。
 
システムが完成し、いざ問題を作成していくと予定よりもたくさんの問題数に
なってしまい焦ったわけです。そして分割してリリースするしかない!という結論に
なったのです。
 
でも改めて考えると、分割はやはり不便な感じがするわけです。
ということで前述のようなシステム変更をして1本化しようとの考えに至りました。
「問題リストの廃止」と「復習データの上限」は400問を越えるような状態を
考慮しての変更という側面もあったりします。
(問題数が増えて負荷が高くなるのは、リスト表示と復習データなので)
 
 
分割して安い料金のアプリを複数用意した方が購入しやすいのでは?
という考えもあったのですが、使い勝手の方が優先ですよね。やはり
 
 
 

jQueryサイト:リファレンス修正

今週はUtilities/data/miscのカテゴリです。
 
 

isEmptyObject

なぜこのようなメソッドが存在するか分からなかったのですが、
objectオブジェクトって比較式でチェックすることはできなかったのですね…
以下の記事を追加しました。
→リファレンス:isEmptyObjectメソッド「もっと簡単にチェックできると思ったけれど…
 
 

isFunction

利用時の注意点を追加しました。
→リファレンス:isFunctionメソッド「function名の後には()を付けないように
 
 

grep

リファレンスを再確認して、ユーティリティは以外に便利なメソッドがあることに
気が付きました。問題集アプリでは、問題のデータ(配列)から正解した問題のデータ
(配列)を引き算する処理を書いているのですが、grepメソッドを利用すれば
シンプルに記述することができます。
→リファレンス:grepメソッド「配列同士を引き算するfunctionを作ってみた
しかしjQueryのユーティリティには配列に関連するメソッドがたくさんあるので
phpのように配列の差分を取得するメソッドを追加してくれたらよいのに…とも思いました。
→google検索「php array_diff
 
 

grep/each/mapの比較

似たような処理をするgrep/each/mapを比較するためのサンプルを追加しました。
→リファレンス:grepメソッド「データの抽出に便利かも
→リファレンス:eachメソッド「少し実用的なサンプル
→リファレンス:mapメソッド「少し実用的なサンプル
 
 

hasData

役に立たない情報かもしれませんが、サンプル作成中に気が付いたことがあったので
サンプルを追加しました。データの内容にdataメソッドを利用すると、データを追加されて
しまいます。
→リファレンス:$.hasDataメソッド「dataメソッドでは代わりはできませんでした(しかも空のデータを付けてしまいます)
 
 

get

getメソッドはマイナスにインデックス番号に対応したのでサンプルを追加しました。
ついでにメモで紹介している:eq()もv1.8からマイナスに対応したので、そちらにも
サンプルを追加しました。
→リファレンス:getメソッド「しかしgetメソッドはマイナスの数値が利用できます
→リファレンス:getメソッド「jQueryオブジェクトが欲しいのであればeq()
 
 

length

javaScript本来の機能の説明をメモに追加しました。
→リファレンス:lengthプロパティ「javaScriptのlengthプロパティを拡張
 
 
 
他にも細々と文言を修正しましたが、サンプルの追加などはないのでここでは省略します。
来週からは復習用のデータを作成しつつ、問題の校正をしていく予定です。
 
 
 
 

iOS:バージョンアップ…

バージョンアップの申請はだいたい1週間で完了するようです。
というかバージョンアップの文章が変です…。この文章を見て、自分でもなんて書こうと
したのかよく分かりません…。
写真
 
 
たぶん、こう言いたかったのだと思う…。ということで以下の様に変更修正。スクリーンショット 2014-02-08 17.48.47
 
初バージョンアップだったのに失態をさらしてしまいました…。
はやく修正が反映されて欲しい今日この頃です。
追記:2時間くらいで反映されました!
 
 
 

iOS:バージョンアップの申請をしました

昨日の記事のとおり、リファレンスの内容修正に伴いjQuery問題集の解説文を1つ修正する
ことになりました(Lite版には含まれない問題なのでLite版は変更なしです)。
 
問題データの修正だけなので、すぐに修正完了。以下の様に現在審査待ちです。
バージョンアップの審査は比較的すぐに済むそうなので、近日中にバージョンアップ
するとおもいます。
version up
 
 
 
問題集アプリのバージョンアップはこれからもあると思うのですが
xcodeってソースのバージョン管理はどうやるのだろう?
今日はもう時間が無いので、ググったリンクをメモ。
→google検索「xcode プロジェクト バージョン管理
 
 
 

jQueryサイト:リファレンス修正

サイトの読者様より古いIEで機能しないサンプルがあると報告がありましたので、
それに合わせてリファレンスの修正を行いました。yuk様ありがとうございます。

scrollイベント

ページ全体にscrollイベントを設定する際、セレクタにdocumentを設定すると
IE7で機能しません。ですのでwindowを設定するように変更しました。
→リファレンス:scrollイベント「スクロールした時に実行する処理を設定
→リファレンス:scrollイベント「scrollイベントはhtmlやbody要素には利用できません
 
 
 

上記修正に付随した修正

上記の修正に伴い、他のメソッドも幾つか修正しました。
 

scrollTopメソッド

scrollTopメソッドのセレクタにdocumentを設定しても、IE7で機能することを確認した
のですが、サンプル内で利用しているscrollイベントのセレクタと合わせた方が混乱しない
と判断し、セレクタをdocumentからwindowに変更しました。
→リファレンス:scrollTopメソッド「ブラウザのスクロール位置を取得します
 
このページでは、animateメソッドと組みあわせてスムーススクロールにしたサンプルが
あるのですが、このときのanimateメソッドのセレクタにwindowを設定すると機能しません。
animateメソッドにはセレクタとして「body」と「html」を設定するようにしましょう。
→リファレンス:scrollTopメソッド「メモ
 
 

scrollLeftメソッド

scrollTopメソッドと同じように修正しました。
→リファレンス:scrollLeftメソッド
 
 

widthメソッド

widthメソッドのセレクタにはdocument/windowの両方が設定できますが、
それぞれ意味が異なります。どの様に異なるかの説明を追加しました。
※IE7でもdocument/windowの両方とも機能します。
→リファレンス:widthメソッド「ページの幅も取得できます
 
 

heightメソッド

widthメソッドと同じように修正しました。
→リファレンス:heightメソッド「ページの高さも取得できます
 
 
 

問題集アプリの修正予定

上記の修正にともない問題集アプリの問題もチェックしました。
結果、ID212の説明文を一部修正することになりました。
修正内容は以下のページの「更新情報」を確認して下さい。
documentとwindowの問題ではなく、animateメソッドを利用したスムーススクロールの
セレクタとscrollTopメソッドのセレクタを混同してしまいました…。
jQuery問題集 復習用ページ
 
 
1問だけの修正ですが、アプリのバージョンアップ作業というのを早めに経験しておきたいので
アプリをバージョンアップする予定です。審査期間も含め2月中に済ませたいです。
 
他にもサイトの内容が「おかしい」「機能しない」などありましたら
遠慮無くご連絡ください。今後ともよろしくお願いいたします。
 
 
 

jQueryサイト:リファレンスの修正

リファレンスの修正

今回もアプリ作成に伴うリファレンスの修正です。

廃止メソッドと非推奨メソッド

リファレンスの左メニューで、廃止になったメソッドはグレー表示、非推奨になったメソッドは
薄い青で表示するようにしました。
 
 
 

promise

promiseメソッドは複数要素のアニメをまとめることができないと思っていたのですが
できたので、サンプルを追加しました。
→リファレンス:promiseメソッド「複数の要素に対応しています
  
また通信系のlaodメソッドからpromiseオブジェクトが作成できるか試してみました。
→リファレンス:promiseメソッド「通信には利用できません
 
 
 

deferred.promise

deferredメソッドのページ追加に伴い、内容を少し変更しました。
変更といっても、deferredメソッドのページの内容に合わせただけです。
→リファレンス:deferred.promiseメソッド
 
 
 

always

正常終了/異常終了にかかわらず、処理が終了した時に実行する処理を設定する
alwaysメソッドにメモを追加しました。
→リファレンス:promiseメソッド「実際の使いどころ
 
 
 

progress

deferredオブジェクトを誤解したまま記事を書いていたので、全体的に修正しました。
→リファレンス:progressメソッド
 
 
 

then

thenメソッドは、実はスゴイ機能を持っていました。このページは修正ではなく
まるごと作り直したので、一度すべて読んでみてください。
→リファレンス:thenメソッド
 
 
 

state

メモに通信(jqXHRオブジェクト)とアニメ(promiseオブジェクト)のサンプルを追加しました。
→リファレンス:stateメソッド「通信(jqXHRオブジェクト)の例
→リファレンス:promiseメソッド「アニメ(promiseオブジェクト)の例
 
 

その他

上記以外にも細々と修正したのですが、サンプルの追加ではなく文言の修正レベルです。
これでdeferredの項目はお終い。来週からはユーティリティの項目に入ります。