XcodeでJavaScriptファイルを扱う

 - by maniwa

XcodeでJavaScriptファイルを扱いたい時は、以下の操作をする必要がある。

1.Xcodeにファイルをリソースファイルとして読み込ませる

Xcodeにファイルを追加しただけでは、使えません。

<手順>

1. XcodeにJavaScriptファイルを追加する。

2.プロジェクトファイルを選択し、Build Phasesタブを開く。

3.Copy Bundle Resourcesに読み込ませたいファイルを選択し、追加する。



2.JavaScriptファイルをコンパイル対象から外す

JavaScriptファイルは予めコンパイルが必要なソースファイルに設定されているため、

JavaScriptファイルをプロジェクトに追加すると、

「ソースをコンパイル」に追加されてしまう。

このままでもビルド時に”no rule to process file”のwarningが出るだけだが、

以下の手順でコンパイル対象外にしておくと良い。

<手順>

1.プロジェクトファイルを選択し、Build Phasesタブを開く。

2.Compile Sourcesからwarning対象となっているファイルを削除する。

ios アプリ開発

Grand Cental Dispatch(GCD)について

 - by maniwa

iosのマルチスレッドの手法であるGDCについて紹介します。

・マルチスレッドで実行する

dispatch_async(
    dispatch_get_main_queue(),
    ^{
        // ここに実行したいコード
    }
);

・コードを1回のみ実行する

static dispatch_once_t token;
dispatch_once(&token,
^{
   // 1度だけ実行するコード
});

ios アプリ開発

【iOS】JSONの取得

 - by maniwa

以下の記述でJSONを取得し、パースまで行えます。

パラメータを指定する場合はparameters:に記述します。

 

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

 [manager GET:@”http://test/sample.json” parameters:nil

   success:^(AFHTTPRequestOperation *operation, id responseObject) {

          // 成功した場合

          NSLog(@”response: %@”, responseObject); }

    failure:^(AFHTTPRequestOperation *operation, NSError *error) {

          // 失敗した場合

           NSLog(@”Error: %@”, error);

 }];

 
ios アプリ開発

【iOS】UIWebViewでHTML,JavaScriptを扱う

 - by maniwa

HTMLファイルや、HTMLファイルに書いたJavaScript関数を扱う時には、
webViewDidFinishLoadメソッド内等で
UIWebViewクラスのstringByEvaluatingJavaScriptFromStringメソッドを使います。

– (void)viewDidLoad

{

 [super viewDidLoad];

 myWebView.scalesPageToFit = YES;
 myWebView.delegate = self;

 // UIWebViewにTHMLファイルを読み込む.
 NSString *htmlPath =
   [[NSBundle mainBundle] pathForResource:@”index” ofType:@”html”];
 NSURLRequest *request =
   [NSURLRequest requestWithURL:[NSURL fileURLWithPath:htmlPath]];

 [myWebView loadRequest:request];

}

-(void)webViewDidFinishLoad:(UIWebView*)webView

{

 // HTMLファイルのヘッダー情報を取得する.
 NSString *head =
   [myWebView stringByEvaluatingJavaScriptFromString: @”document.body.innerHTML”];

 // HTMLファイルに書いたgetString関数の返り値を取得する.
 NSString *returnValue =
   [myWebView stringByEvaluatingJavaScriptFromString: @”getString()”];

}

ios アプリ開発

Macで.aファイルをコミットする

 - by chiba

MacでSVNを使用時に.aファイルがコミットできず、困ったのでメモ。

.aファイルをコミット可能にするには
/.subversion/configのglobal-ignoresで設定をしてあげる必要があります。
global-ignoresを設定しない場合、.aがignoresに含まれてしまうようなので、
.aをコミットするには明示的にglobal-ignoresを設定してあげる必要があります。

【Android】レイアウトの表示表示・非表示について

 - by maniwa

listViewでセルの表示・非表示を切り替えて表示しようとした時に

スクロールして戻ると上手く表示されない事がありました。

この時は、ビューの表示を切り替えるsetVisibility再定義すると

意図したように表示できました。

以下は条件によってtextViewのタイトルを変更し、表示・非表示の対応を行っています。

 

if(条件1){
holder.textViewTitle.setText(“タイトル1”);
holder.textViewTitle.setVisibility(View.VISIBLE);
}else if(条件2) {
holder.textViewTitle.setText(“タイトル2”);
holder.textViewTitle.setVisibility(View.VISIBLE);
}else{
holder.textViewTitle.setVisibility(View.INVISIBLE);
}

・setVisibility(View.VISIBLE)

 表示する

・setVisibility(View.GONE)

 詰めて消す

・setVisibility(View.INVISIBLE)

 消す

Android アプリ開発

missing file について

 - by chiba

先日ソースの移植を行っている際に「missing file」という警告が発生しました。
その解決法を備忘録としてメモしておきます。

missing file とはバージョン管理システムとの不整合で発生するものです。
具体的な解決策は
1.警告を右クリックし、パスをコピー
2.コピーするとパス以外に不要な情報があるので取り除く
3.svn rm [手順2で得たパス]

手順3を行うことで警告を解消できます。

リスト表示について

 - by maniwa

ListViewクラスとBaseAdapterクラスを用いて

データのリスト表示を行いました。

それぞれの主要メソッドをまとめておきます。

 

■ListViewクラス

特定のViewを縦方向に並べて表示する為のView。

・onItemClickメソッド

 リストの項目がタップされた時に呼ばれる。

・onItemLongClickメソッド

 リストの項目がロングタップされた時に呼ばれる。

 

■BaseAdapterクラス

ListViewとセットで用いる。

ListViewの内部で使用するViewとViewを利用する時のデータが含まれる。

ListView.setAdapter(BaseAdapter)で表示とデータを結びつける。

・getCount()メソッド

 配列やリストの要素数を返す。

・getItem()メソッド

 indexやオブジェクトを返す。

・getItemId()メソッド

 特別なIDを返す。

・getView()

 ここで描写する。

 

Android アプリ開発

ソースでのオートレイアウト

 - by chiba

storyBoardを使わずにオートレイアウトを行う機会があったのでメモ。

まず以下のようにオートレイアウトを適用させたいオブジェクトの
translatesAutoresizingMaskIntoConstraintsプロパティをNOにする。
label.translatesAutoresizingMaskIntoConstraints = NO;

次にどのようにオートレイアウト(どのオブジェクトと隣接させるか等)させるかをソース上で指定する。
※以下フォーマットを指定する部分のみ記述。

// 対象オブジェクトを左から50pxズラす
@”|-50-[label]-0-|”

// 対象オブジェクトを上から200pxズラし、下は10pxあくようにする
@”V:|-200-[label]-10-|”

// 対象オブジェクトを上から200pxズラし、下は10pxあくようにする。オブジェクトのheightを25にする
@”V:|-200-[label(25)]-10-|”

補足:「V:」は縦の設定を行う際の書式

非同期処理について

 - by maniwa

Androidの非同期処理について調べたので、書いておきます。

 

非同期処理はAsync Taskクラスを用いて実装出来ます。

■doInBackground()

非同期で処理したい内容を書く。

必ず実装します。

■onPostExecute()

非同期処理が終わった後、doInBackgroundメソッドの戻り値を

引数として受け取り、画面に反映させる。

 

他にも、非同期処理前に呼ばれるonPreExecute()、

進行状況をブログレスバーで表示するonProgressUpdate()などがあります。

 

Android アプリ開発