iTunesで写真の同期ができなかった時

PC(MacBook Pro)側に保存してある写真をiPhone(6s)に同期しようとしたが失敗。

対処方法

  1. iTunesiPhoneアイコンをクリック
  2. Photosをクリック
  3. Sync Photosのチェックを外す
  4. PCの同期元のフォルダに入っている「iPod Photo Cache」を削除
  5. Sync Photosのチェックを入れてSyncボタンを押す

f:id:hchuno:20160328125348j:plain

AndroidエミュレータにAPKをインストールする

下準備

Android SDKのインストール

  • Android Studio をインストールして、SDK Managerを使ってインストールした
  • インストール先のPCによっては、VTx関連のBIOS設定が必要になる可能性アリ
  • ↓インストール先 ※Windows8.1の場合

C:\Users\ログインユーザー名\AppData\Local\Android\sdk

APKファイルの配置

  1. 前述のAndroid SDKのディレクトリ直下のtoolsディレクトリにapkファイルを置く
  2. toolsディレクトリに移動する

cd C:\Users\ログインユーザー名\AppData\Local\Android\sdk\tools

Pathの登録

上記のtoolsへのPathを登録する

Pathの設定画面
  1. 「ウィンドウズキー+xキー」で設定メニューを表示
  2. 「システム」を選択
  3. 「システムの詳細設定」を選択
  4. 環境変数」ボタンを押下
  5. 「システム環境変数」の中からPathを探して編集

実作業

Androidエミュレータの起動

> android avd

> adb devices
List of devices attached
emulator-5556 device

APKのインストール

  • 「下準備」で配置したAPKを指定する

> adb install apkファイル名

注意点
  • エミュレータが起動しきる前にインストールを試みるとエラーになる

Error: Could not access the Package Manager. Is the system running?

Error: more than one device and emulator

Windows8.1なPCに施した諸々の設定

キー配置の変更

普段使っているMac(USキーボード配列)に少しでも合わせるため、Change Keyというフリーソフトを使って配置換え。

f:id:hchuno:20150504184015j:plain

  • 無変換→Ctrl
  • 変換→半角全角
  • カタカナひらがな→Home
  • 右alt→End
  • 右クリックボタン→Page Up
  • 右Ctrl→Page Down
  • Caps Lock→無効
  • Num Lock→無効

テキストエディタ

Sublime Text2の導入

Viっぽい挙動(VintageMode)にできるので。

VintageModeを有効にする
  • 「Settings - Default」の最終行が「Vintageを無視する」という記述になっているので、以下のように変更して保存する。
#↓変更前
"ignored_packages": ["Vintage"]

#↓変更後
"ignored_packages": []
  • 「Settings - User」に以下を追記する
"vintage_start_in_command_mode": true,
"vintage_ctrl_keys": true

Synaptics TouchPad Driverのインストール

元々Windows7だったのを諸事情により8.1にアップグレードしたのだが、その時点で
「Synaptics TouchPad」が使えなくなっていた(ドライバーが消えていた)。
そこで、
HPのサポートサイトでPCの機種名検索から対応ドライバーを割り出した。
「Driver - Keyboard, Mouse and Input Devices」という項目に「Synaptics TouchPad Driver」が含まれていたので、これをダウンロード&インストール。

Virtualization Technology (VTx)を有効にする

背景

Android Studioのインストール時に必要となった。

対象

HP ProBook650

手順

  1. PC起動直後の真っ黒い画面で「Press ESC Key…」と表示されている時にescキーを押す
  2. F10キーを押してBIOS設定画面を表示する
  3. 左右キーを押してAdvancedという項目を表示する
  4. Virtualization Technology (VTx)という項目にチェックを入れる
  5. Saveを押す
  6. escキーを押してSaveを選択する

Unity5あれこれ

Sceneに配置したTextの中身をスクリプトで変更する(uGUI対応)

1. 空のGameObjectを追加
2. 以下のような内容のスクリプトを作成し、UnityのEditor上で1のGameObjectにアタッチする

    public Text hogeText;
    void Start() {
        debugText.text = "hage";
    }

3. UnityのEditorのHierarchy上で右クリックからUI→Textと選択
f:id:hchuno:20150407165124j:plain
4. 1のGameObjectを選択して、3のTextをhogeTextにドラッグアンドドロップして関連付ける
f:id:hchuno:20150407165309j:plain
5. UnityのEditorでプレイボタンを押すとTextの表記がhageに変わる

WebViewプラグインを用いて表示したHTMLから送られてきた値を取得する

    WebViewObject wvo;
    string htmlFilePath;

    void Start() {
        htmlFilePath = Path.Combine(Application.persistentDataPath, "sample.html");
        WriteHTML();

        wvo = (new GameObject("WebViewObject")).AddComponent<WebViewObject>();
        wvo.Init((msg) => {
            hogeText.text = msg;
            if (msg == “hoge”) {
		// Nextという名前のSceneに遷移
                Application.LoadLevel("Push");
            }

        });
        wvo.LoadURL("file://" + htmlFilePath);
        wvo.SetMargins(15, 150, 15, 20);
        wvo.SetVisibility(true);
    }
	

    void WriteHTML() {
        using (var writer = new StreamWriter(htmlFilePath, false)) {
            writer.Write(
                @"<html>
<body>
<ul>
  <li><a href='unity:hage'>callback 'hage'</a></li>
  <li><a href='unity:hoge’>callback ‘hoge’</a></li>
</ul>
</body>
</html>
");
            writer.Close();
        }
    }
}

AndroidManifest.xml

  • Androidのネイティブプラグイン作成等で必要。
  • プラットフォームをAndroidにセットした後、ビルドすると以下の場所に生成される
{プロジェクトルート}/Temp/StagingArea/

Unity5が来た!

AssetBundle関連

“The AssetBundle ‘◯◯◯’could not be loaded because it is not compatible with this newer version of the Unity runtime.
Rebuild the AssetBundle to fix this error.”

やっぱりか…(;´Д`)

Unity5のほうでAssetBundleビルドを行った後、再度AssetBundleのロードを試みるも、再び上記のエラー発生。

WWW.LoadFromCacheOrDownLoad()に渡すversionの引数をインクリメントすると、無事に新しいものがロードされるようになった!
(ローカルにUnity4時代のAssetBundleが残っていて、そちらをロードしようとしていたのが原因)

Unityあれこれ

ローカルのUnityプロジェクトが最新にならない

チーム開発等でUnityのプロジェクトを最新にしても、ローカルのAssetが古くて挙動がおかしいことがあった。
以下の手順で解決。

  1. Unityを終了
  2. プロジェクト直下のLibraryディレクトリを丸ごと削除
  3. Unityを起動

Canvas以下に置いたTestTextというコンポーネントを探して、テキストを変える

int number = 0;
var canvas = GameObject.Find ("/Canvas");
foreach (Transform child in canvas.transform) {
    if (child.name == "TestText") {
        Text target = child.gameObject.GetComponent<Text> ();
        target.text = "hoge" + number.ToString ();
    }
    number++;
}

GameObjectの表示/非表示切り替え

  • SetActive() を使う
  • 非アクティブ化されたGameObjectを取得できるFindDeep() を使う
    • 第二引数にtrueを渡すと非アクティブなGameObjectも検索対象になる
bool isActive = false;

gameObject.FindDeep ("MyChunoText", isActive).SetActive (isActive);

Modelとテーブルを追加する

追加したいテーブル

CREATE TABLE `hchuno_items` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` int(11) DEFAULT NULL,
  `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `version` int(11) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

手順

Active Recordを使ってModelを生成

$ rails generate model hchuno_items code:integer name:string version:integer

invoke active_record
create db/migrate/20150205000000_create_hchuno_items.rb
create app/models/assetbundle_master.rb
invoke rspec
create spec/models/hchuno_items_spec.rb
invoke factory_girl
create spec/factories/hchuno_items.rb

マイグレーションを実行してテーブルを追加

$ rake db:migrate

(in /Users/hchuno/projects)
== 20150205000010 CreateHchunoItems: migrating =========================

    • create_table(:hchuno_items)

-> 0.0399s
== 20150205000012 CreateHchunoItems: migrated (0.0400s) ================