[Swift]iPhoneを振動させる

iPhoneのバイブレーション機能を用いるには?

システムサウンドにバイブレーションさせるものがあるのでそれを用います。

System Sound Services Reference

• AudioToolboxをimportしたうえで、バイブレーション用サウンドを指定して鳴らすことで、振動させることができます。

バイブレーションのサンプル

Startボタンを押すと3秒間隔で振動し続けるサンプルを作成しました。(Stopボタンを押すと止まります)

Single View Applicationで開発。

Main.storyboardにStartボタンを配置
ss 2015-11-13 17.09.33

StartボタンとViewController.swift間をActionで結びつける

Startボタンが押されると、Timerが起動します。
Timerは3秒間隔で、システムサウンドによるバイブレーションを実行しています。
また、ボタンは押されるごとに、”Start”と”Stop”の表記を切り替えています。
Stopボタンが押されると、Timerを無効にします。

ViewController.swift

iPhoneでの「言語と地域」設定(iOS 9版)

iPhoneで、まるで知らない言語の「言語と地域」に変更してしまったとき、どこを選べば元に戻せるのか困ったのでメモ

以前、iPhoneでの言語環境設定 | nackpan Blog
iPhoneでの言語環境設定(iOS 8版) | nackpan Blog
という記事を書きました。iOS 9でちょっと画面の項目数、項目名が変わっていたので、新たに書きました。

1. 設定アイコンを選択

settings

2. 設定画面が表示されるので、下図のgear2015-10-05アイコン(「一般」にあたる)を選択

ss-2015010-05-settings

3. 表示された画面で、下図の「言語と地域」に相当する項目を選択

ss 2015-10-05 10 52 17languages
(項目数でいうと、2個、4個(Siriあり)、1個、2個、2個、3個(<-ここの3番目です))

4. 表示された画面で、下図の「iPhoneの使用言語」に相当する項目を選択

file-settings-03

5. 使用言語を選択します

これで、言語環境が変更されます


各国語での文言

日本語
変更中のメッセージ : 言語を設定中…
設定 –> 一般 –> 言語と地域 –> iPhoneの使用言語

英語 : English
変更中のメッセージ : Setting Language…
Settings –> General –> Language & Region –> iPhone Language

簡体中国語 : 简体中文
変更中のメッセージ : 正在设置语言…
设置 –> 通用 –> 语言与地区 –> iPhone 语言

ロシア語 : Русский
変更中のメッセージ : Установка языка…
Настройки –> Основные –> Язык и регион –> Язык iPhone

韓国語 : 한국어
変更中のメッセージ : 언어 설정 중…
설정 –> 일반 –> 언어 및 지역 –> iPhone 언어

タイ語 :
การตั้งค่า –> ทั่วไป –> ภาษาและภูมิภาค –> ภาษา iPhone

iPhoneでの言語環境設定(iOS 8版)

iPhoneで、まるで知らない言語の「言語環境」に変更してしまったとき、どこを選べば元に戻せるのか困ったのでメモ

(2015/10/05追記。iOS 9版を書きました。
iPhoneでの「言語と地域」設定(iOS 9版) | nackpan Blog

以前、iPhoneでの言語環境設定 | nackpan Blogという記事を書いたが、iOS 8では設定画面の項目数、項目名が変わっているので、新たに記します。

1. 設定アイコンを選択

settings

2. 設定画面が表示されるので、下図のアイコン(「一般」にあたる)を選択

file-settings-01

3. 表示された画面で、下図の「言語と地域」に相当する項目を選択

file-settings-02
(項目数でいうと、2個、3個(Siriあり)、1個、2個、2個、3個(<-ここの3番目です))

4. 表示された画面で、下図の「iPhoneの使用言語」に相当する項目を選択

file-settings-03

5. 使用言語を選択します

これで、言語環境が変更されます


各国語での文言

日本語
変更中のメッセージ : 言語を設定中…
設定 –> 一般 –> 言語と地域 –> iPhoneの使用言語

英語 : English
変更中のメッセージ : Setting Language…
Settings –> General –> Language & Region –> iPhone Language

簡体中国語 : 简体中文
変更中のメッセージ : 正在设置语言…
设置 –> 通用 –> 语言与地区 –> iPhone 语言

ロシア語 : Русский
変更中のメッセージ : Установка языка…
Настройки –> Основные –> Язык и регион –> Язык iPhone

韓国語 : 한국어
変更中のメッセージ : 언어 설정 중…
설정 –> 일반 –> 언어 및 지역 –> iPhone 언어

タイ語 :
การตั้งค่า –> ทั่วไป –> ภาษาและภูมิภาค –> ภาษา iPhone

[Repete]クラウドストレージからのオーディオファイル読み込み機能の使い方

「Repete」(旧名:語学学習支援プレイヤー)は、リピーティングに便利なオーディオプレイヤーです。
2015年4月12日のアップデートver1.5.1で、クラウドストレージ(Dropbox, OneDrive, Google Drive)からオーディオファイルが読み込めるようになりました。

読み込み方法には、2種類あります。
* 「クラウドストレージから読み込み」を使う
* 「別のアプリから開く…」を使う

「クラウドストレージから読み込み」を使う

「選曲」をタップして、選曲画面を開きます。
項目にある「ストレージ」をタップ。
写真 2015-04-26storage01
右上にある写真 2015-03-23moreIcon2アイコンをタップ
写真2015-04-26storage022
あらわれたメニューから、「クラウドストレージから読み込み」をタップ
写真 2015-03-23 8 54 32
どのクラウドストレージから読み込むかを選択
写真 2015-03-23 9 50 08
すると、各クラウドストレージのログイン及び、アクセス許可を問う画面があらわれるので、そこで許可を出すと読み込み機能が使用可能になります。
許可を出すと、クラウドストレージのルートフォルダの状況が表示されます。
写真 2015-04-02 15 54 35
フォルダを示すセルには点線があります。点線の左側をタップするとそのフォルダを選択。点線の右側をタップするとフォルダの中身表示になります。
写真 2015-03-23folder
目的のアイテムを選択して「完了」を押すとダウンロード開始です。

「別のアプリで開く…」を使う

Dropboxなどのアプリを起動して、目的のオーディオファイルを選択します。
(しばらくすると再生が始まりますが、今回の用途ではないので止めてください)
そこで、2015-03-30_exporticonアイコンをタップします。
2015-03-30_22_57 02
あらわれたメニューから「別のアプリで開く…」を選択。
写真 2015-03-30 22 57 12
「Repete」を選択。
写真 2015-03-30 22 57 30

これによって、「Repete」の「ストレージ」にオーディオファイルが保存されます。

2015年1月開発状況

2015年1月開発状況

クラウドストレージから読み込み機能作成中

語学学習支援プレイヤー」をアップデートすべく、開発中。
作成中の機能 : クラウドストレージ(Dropbox, Google Drive, OneDrive)のオーディオファイルを読み込んで使用できるようにする

1月中にはできると思っていたけど、できなかった。


1日 : アイコンを一部、再作成

2日-3日 : ナビゲーションバーにあるmoreアイコンをクリックした時に、吹き出しをつける

5日-12日 : ローカルファイルのリネーム・移動処理(上書きの場合の対処など)

9日-10日 : Dropboxのパスが小文字で扱われているため問題が生じていた部分を修正

13日-15日 : ダウンロード処理(書き連ねて分かりにくくなっていた部分を分離、整理する)

16日 : 「不明なアーティスト」でアプリが落ちる不具合を修正

17日-19日 : ダウンロード処理(ダウンロード中にpickerを一度閉じて開きなおした場合のセル表示がおかしいので修正)

20日 : リネーム時に””, ” “を入力した時に対処

21日 : 方針変更。ダウンロード中に、ファイル移動、リネームは使用不可能にした

22日 : Google Drive, OneDriveの調査開始

23日-24日 : Goole Driveの最初のサンプル

25日-27日 : Goole Driveで指定したフォルダからのファイルダウンロード処理作成

28日-31日 : OneDriveでのファイルダウンロード処理作成中


現在、できていること。
・Dropboxからフォルダ、ファイルを指定して読み込む。
・読み込んだフォルダ、ファイルを移動、リネーム、削除する
できていないこと。
・Goole Drive, OneDriveからの読み込み機能の本体への組み込み
・一部アイコンの修正が必要
・ファイル名チェック(GoogleDriveだと、’/’などが入っているファイルがあるが大丈夫?)
・容量チェック

iPhoneのクラウドストレージアプリで、フォルダ名変更時のメッセージを調べた

iPhoneのクラウドストレージアプリ(Dropbox, OneDrive, Google Drive)で、フォルダ名変更時のメッセージを調べたのでメモ。

Dropbox(ver. 3.6.3)

\ / : ? * < > ” | が入っている時

無効なフォルダ名
次の文字はフォルダ名に使用できません:
\ / : ? * < > ” |

Invalid Folder Name
The following characters are not allowed in folder names:
\ / : ? * < > ” |

“”(無文字)のとき

Doneボタン、フォルダ名を変更ボタンが入力不可能になる

” “(空白文字)のとき

無効なフォルダ名
フォルダ名を入力してください。

Invalid Folder Name
Please Provide a name for your folder.

末尾に「 . 」(ピリオド)を使用したとき

無効なフォルダ名
フォルダ名の末尾に「.」は使用できません

Invalid Folder Name
Folder names may not end with “.”

先頭に「 . 」(ピリオド)を使用した時

非表示のファイルを保存しますか?
ファイル名の頭文字が「.」のファイルはMacやLinuxで閲覧できません

Save Hidden File?
Files beginning with “.” will not be visible on Mac or Linux.

フォルダ作成できる


OneDrive(ver. 4.6.1)

\ / : ? * < > ” | が入っている時

末尾に「 . 」(ピリオド)を使用したとき

アイテムの名前を変更できませんでした
名前には特殊文字を使用できません。また、末尾に”.”を使用することもできません。

The Item Couldn’t Be Renamed
名前には特殊文字を使用できません。また、末尾に”.”を使用することもできません。

先頭に「 . 」(ピリオド)を使用した時

フォルダ作成できる

“”(無文字)のとき

Doneボタン、完了ボタンが入力不可能になる

” “(空白文字)のとき

完了ボタン入力不可能。Doneボタン押しても変化しない。


Google Drive(ver. 3.4.33113)

\ / : ? * < > ” | が入っている時

末尾に「 . 」(ピリオド)を使用したとき

先頭に「 . 」(ピリオド)を使用した時

フォルダ作成できる

“”(無文字)のとき

” “(空白文字)のとき

フォルダの作成中にエラーが発生しました
名前にはスペース以外の1文字以上を含める必要があります。

Rename folder
Names must have at least one character that’s not a space.

2014年11,12月開発状況

2014年11,12月開発状況

11月

クラウドストレージから読み込み機能作成中

語学学習支援プレイヤー」をアップデートすべく、開発中。
作成中の機能 : クラウドストレージ(Dropboxなど)のオーディオファイルを読み込んで使用できるようにする

  • クラウドストレージから読み込むさい、フォルダ指定できるようにする。
  • クラウドストレージから読み込み中、他の曲を選択して再生することができる。
  • 読み込みを途中でキャンセルできる。

ファイル管理画面をどうするか?
いままでは、
たとえば、アルバムタブだと、
アルバム一覧ー>各アルバム詳細
のように、一覧ー>詳細
の2層構造。
(「曲」タブのみ、一層)
「ミュージック」アプリの形式に合わせていた。

「クラウドストレージから読み込み」でのファイル管理。
クラウドストレージは、フォルダの中にフォルダをもてる階層構造なので、それを表現できる画面にする必要が有る。
読み込んだ後の「ローカルでのファイル管理」でも階層構造をもつこととする。
ローカルでのファイル管理画面では、フォルダの新規作成、ファイル名変更、アイテム移動(ファイル、フォルダの移動)ができるようにしよう。
まずは、ファイル管理画面で階層構造をもつことができるようにした。
CustomTableViewControllerのテーブルのセルをタップすると、新たなCustomTableControllerのインスタンスを作成し、navigationControllerにpushするようにした。

Dropboxのファイルを扱うには、Dropbox APIを使う。調べた。

Drop-ins
簡単にDropboxファイルにアクセスできる仕組み。Dropbox上のファイルを選択する画面があらかじめ用意されている。
Drop-insにはChooserとSaverがある。
Chooserで、ファイルをひとつ選択すると、複雑なURLを生成する。
これをダウンロードするなりなんなりする。

インターネットとの通信がでてきた。いままでやっていなかったこと。
iOSで、インターネット上のファイルをあつかう機能を調べてみよう。
iOS 7 から登場したNSURLSessionを使うと、URLを指定してその内容をダウンロードする処理が扱いやすい。
NSURLSessionを使って、インターネット上のファイルのダウンロードの実験をやってみた。
NSURLSEssionでは、アプリを閉じてもダウンロード処理できる。複数のタスクをダウンロードできる。
あつかいやすい。

Drop-insのchooser。これは、クラウドストレージの選択画面があらかじめ用意されていて簡便だ。しかし、複数のファイルを選択する方法、フォルダを選択する方法がみあたらない。

そこで、Dropbox APIのCore APIを使うこととした。

12月

Core APIを使ってDropboxからアイテム読み込み

Core APIを使ったダウンロードだと、アプリ終了後のダウンロードはNSURLSessionのようにはできないようだ。
アプリ終了後しばらく動作できるbackground task(iOS 7だと3分間)を使うこととする。

Dropboxからアイテムを読み込む際、フォルダが選択できるようにしたい。
Core APIで、フォルダに相当するURLを指定してもエラーになる。
なので、フォルダの中を順繰りにめぐってファイルpathを取得するようにした。

また同名のアイテムがあった場合、上書き確認の必要。ー> つくった。

途中経過をテーブルに表示する。ー> 読み込み中は、セルにインジケーターとプログレスバーを表示すようにした。

「クラウドストレージから読み込み」では、「アイテム(ファイルもしくはフォルダ)の選択」をおこなう。
フォルダセルをタップしたとき、どう動作するか悩む。
「クラウドストレージから読み込み」では、「アイテム選択」のみ行うので、セルの左2/3ぐらいをタップした場合は、フォルダを選択。セルの右1/3をタップした場合はフォルダの内容を展開することとした。
どこが境界かわからないと、操作に納得感がなかったので、点線をいれた。

ローカルでのフォルダ・ファイルの扱い。

ローカルでは、ファイルのみ選曲できるようにしていたのでこれを踏襲。
編集モードは、アイテム選択して、削除、名前変更、移動ができるようにした。また、フォルダの作成ができるようにした。

削除 : アイテムを削除する。このさい、確認メッセージをだすこと。そのさい、「ファイルひとつ」「フォルダひとつ」「複数ファイル」「複数フォルダ」「複数アイテム」で分けた。
名前変更 : アイテムの名前を変更する。
移動 : アイテムの移動。新たなnavigationControllerを作成。移動用tableControllerをルートフォルダ分から現在表示しているフォルダ分まで作成し、navigationControllerにpushする。そして、naviagationControllerを現在のviewからモーダルに表示するようにした。

フォルダの作成 : 新たなフォルダを作成する。末尾が’.’のフォルダ名などは作成できないようにして、メッセージを表示するようにした。

ここまで、できた。

2014年10月開発状況

10月の開発状況

「語学学習支援プレイヤー」のアップデート(完了したもの)

「語学学習支援プレイヤー」をアップデートしました(ver 1.4.2) | nackpan Blog
・バックグラウンド再生機能
・再生速度変更機能
・iTunesファイル共有経由のオーディオファイル再生機能

「語学学習支援プレイヤー」をアップデートしました(ver 1.4.3) | nackpan Blog
・iPhoneイヤホンのセンターボタンによる再生、一時停止に対応

無音分割アプリ

無音部分で分割するアプリの製作を開始。iOS 8 + Swiftで作成。 画面構成を考えた。画面遷移がどのようになるのか試作。

「語学学習支援プレイヤー」のアップデート(作成中)

Dropboxなどのクラウドストレージからオーディオファイルを読み込む機能を作成開始。