運営元のロゴ Copyright © 2007-2025 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。
iOSアプリでHTTP通信を実装するベーシックな方法はFoundation Frameworkで提供されているNSURLConnectionを利用すること。ドキュメントの「URL Loading System Programming Guide」を一通り読んだので、その基本的な使い方をまとめてみる。 デフォルト設定でGET通信 まずはコードから。Window-based Applicationのプロジェクトテンプレートに対して、処理のエントリポイントをapplication:didFinishLaunchingWithOptions:に追加、他のメソッドは新規で作成。receivedDataはヘッダで定義されているNSMutableData型の変数。あ、テストコードなのでメモリ管理とか気にせず書いてます、あしからず。 - (BOOL)application:(UIApplication *
NSURLConnectionでHTTPリクエストを同期通信・非同期通信してソースを取得。 取得したソースをTextViewに表示。 文字コードは自動判定してくれないらしい。 間違った文字コードを指定するとnilが返ってくるので、日本でよく使われる文字コードを配列にして、それを総当たりでチェック。 もしどれも違ったらASCIIとする。 非同期通信+プログレスバーはFlashでやるのと大体同じだった。 アラートにはデリゲートをつけて、何が押されたかを表示させてみた。 Interface Builder側は割愛。 ソース test1ViewController.h #import <UIKit/UIKit.h> @interface test1ViewController : UIViewController { IBOutlet UIButton *btn1; IBOutlet UIText
NSURLConnectionを使ってURLからデータを非同期的に取得する方法です。 通信による処理によってアプリケーション全体をブロックさせないアプリケーションを書いたり、プログレスバーを作るには非同期的な手法を使うのが一般的です。 サンプルコード URLを指定した非同期的なデータ取得サンプルを以下に示します。 以下のコードの特徴は、delegateされるためのオブジェクトを生成している点です。 以下のサンプルコードは、単に動作の概要を示すためのスケルトンコードであるため各メソッドでNSLogを出力しているだけです。 そのため、データを実際に取得していません。 手元で実行して、メソッドが呼び出されていく様子を見て頂ければ幸いです。 #import // 通信の進捗具合に応じて呼び出される @interface myUrlConnDelegate : NSObject - (void)co
Xcode プロジェクトのファイル一式を、なるべく Xcode の SCM 機能の GUI を使って、バージョン管理システム SVN (Subversion) で管理する方法です。 世の中では、より新しいバージョン管理システムである Git に移行しつつありますが( iPhone デベロッパーズ クックブックで有名なエリカ様も...)、空気を読まずに SVN を取り上げます。 目次は次の通り。 Xcode プロジェクトを SVN リポジトリに初コミットする コミット済の Xcode プロジェクトをチェックアウトする SVN と連携した1タスクあたりのワークフロー 状況によって、次のように読み進めてください。 SVN リポジトリ上に、Xcode プロジェクトを新しく追加する場合: 1. と 3. を読んでください SVN リポジトリ上に、Xcode プロジェクトが既にある場合(既存プロジェク
はじめに 10日にデンマークで開催されたgoto;カンファレンスにて、Googleの社員であるLars BakとGilad Brachaによって新しいプログラミング言語Dartの発表が行われました。 公式サイトによると、Dartは構造化されたWebアプリケーションを作成するための新たなクラスベースのプログラミング言語と書かれています。さらに、シンプルさ、効率性、スケーラビリティを目標に開発されたとのことです。この新しく、挑戦的なプログラミング言語をぜひ一緒に試してみましょう! 対象読者 Webサービス開発に興味があるプログラマー 新しいプログラミング言語に興味がある方 必要な環境 SnowLeopad以降のMac XcodeとSubversionクライアントがインストールされていること Dartとは? Dartとは、10日にGoogleが発表したWebアプリケーションのための新しいプログラ
.NET未経験でもWindows Phoneアプリを作るための基礎知識:いますぐ実践!タイプ別スマホアプリ移植テク(1)(1/3 ページ) 本連載では、iOS(iPhone/iPad/iPod touch)、Android、Windows Phoneなど、さまざまなスマートフォンのプラットフォームに対応するために、各スマホプラットフォーム同士のアプリ移植はもちろん、HTML(HTML5含む)+JavaScriptのWebアプリからのネイティブアプリ変換、Adobe AIR(以下、AIR)/Flashアプリ、デスクトップPC向けのアプリからの移植テクなども紹介する予定です。 第1回から数回は、先日国内でも販売が開始されたスマートフォン「Windows Phone」向けのアプリを今後開発していこうと考えているさまざまなタイプの開発者さん向けに、iOS、Android、Windows Phone
はじめに 先日、社内で初めてプログラミングコンテストを開催しました。 お題はかの有名なFizzBuzz問題です。 全員楽勝で解答するだろうと思いきや・・・結果はいかに!? ちょっと長いエントリですが、このコンテストの顛末をお楽しみください。 開催の動機と経緯 メンバーの向上心を刺激するために、なにか面白くて技術的に意味のあるイベントを開きたかった。 以前からFizzBuzz問題を全員で解いてみたかった。 FizzBuzz問題はプログラマなら解けて当たり前、というようなWeb記事をよく見かけていた。 これぐらいなら誰でも解けるだろうと自分も思っていたが、実際にやってみないとわからない。 そこで社内プログラミングコンテストを開き、みんなでFizzBuzz問題を解いてみたいと思った。 マネージャーに話を持ちかけたところ、すぐに賛同してくれた。 FizzBuzz問題以外の追加問題も作成したが、第1
はじめに 第5回目の本稿は、java.utilパッケージから主にコレクションと呼ばれるAPIを中心に解説します。コレクションとは、複数のオブジェクトを集合としてあつかう仕組みのことで、Android開発においてもよく使用されるものです。後半では、AndroidのGUIと非同期処理の問題をとりあげます。 なおjava.utilパッケージの各クラスの詳細な仕様については、オンラインのJava Platform, Standard Edition 6 API仕様や参考書籍などをご覧ください。 対象読者 Androidアプリケーションの開発を始めたい方で、JavaとEclipseのごく基本的な知識がある方を対象とします。 ジェネリックス コレクションの前に、まずジェネリックスについて少し説明しておきましょう。 ジェネリックスとは、<>で囲んだ型名(型パラメータ)をクラスやメソッドに付加して定義し、
Java は Collections.sort があるのに .NET は List 自身が Sort メソッドを持っているのはなぜ? だそうです。あまり疑問でもないです。だってIListはSortないし。比較するならIList - ListでありList - ArrayListでしょう。とはいっても、JavaのArrayListはほとんどList(Javaのほうの)と同じようなものですが、そうなってくるとむしろメソッドがなくて不便!って思ってしまうのはC#脳。 そして何故かスレッドの話は迷走していて不思議。パフォーマンス? んー……。勝手な印象論ですみませんが、1さん(名前を出すのもアレなので1さん、ということにさせてください)はJavaのCollections.sortの性能を勘違いしているんじゃないかな? 配列のコピーを問題にしてるようだけど、Javaの方式はコピー、してますよ。もっと
メソッドの総称型 メソッドのみに総称型を適用した定義を行うことも出来る。[2007-06-12] 戻り値の型の直前に「<仮型引数, 仮型引数…>」を置くだけ。後はクラスの場合と同様。 public static <T> T notNull(T arg1, T arg2) { T ret; if (arg1 != null) { ret = arg1; } else { ret = arg2; } return ret; } このメソッドを呼び出す側は、クラスの場合とは異なり、明示的に型引数を指定する必要は無い。 指定した引数の値に応じて、自動的に型が判断される。 String s = notNull("abc", "def"); //型引数はString Long l = notNull(new Long(1), new Long(2)); //型引数はLong int i = notNu
Listをソートしてくれるのだけれども Collections#sortはList(正確にはコレクションフレームワーク)をソートしてくれるメソッドなんだけれども、 昔、以下のようなコードを見たことがある。 String[] anArray = getAnArray(); List list = Arrays.asList(anArray); Collections.sort(list); return list; 仕様としてはレガシーな配列を受け取りソートしてListとして返すだけなんだけれども、 実はよろしくない。 Collections#sortの中身をみる 中身は以下のような感じ。 Object[] a = list.toArray(); Arrays.sort(a); ListIterator i = list.listIterator(); for (int j=0; j 実は中
プログラミングとデザインにおける論理と感覚って、同じようなものなんじゃないかな。とようやく実感してきた。だからこそ、僕たちがプログラミングに触れてきたようにデザインに触れてきたデザイナーさんの力を借りたいよね。あと、コミュニケーション大事。そんな話。 祝日の朝にカフェでダラダラ書いたので、グダグダで読み返すと何言ってるかわからない。でも、休みの日にカフェでプニプニと文章書いてると、気分転換になってよかった。食事をとらずに食費を浮かせてカフェラテを注文したかいがあった。 デザインが見えない。 今年の1月ごろからずっと「デザイン」「デザイン」と言ってるけど、まったく何もやってない。とっかかりがわからなくて、手が出せない感じ。デザインという言葉自体、幅が広くて、デザインの対象がコミュニケーションだったりユーザーインターフェイスだったりする。そこも絞れていない感じ。絞れていないというか、共通する基
Android は 2.1-update1 以降でマルチタッチ (Multi-touch) をサポートしている。 ところがマルチタッチといっても、 ピンチイン/ピンチアウトなどのジェスチャをサポートしているだけのアプリが大半で、 複数のタッチを独立に扱えるアプリはいまだほとんどなく、 iPhone と比べるとその差が際立っている。 どうして Android にはマルチタッチを活用したアプリケーションが無いのだろう? と思ったので、 マルチタッチを試すテストアプリ MultiTouch.java (apk) を書いてみた: タッチした位置にタッチの強さに応じた大きさの円を表示するだけの単純なアプリ。 指を移動すれば円も追随する。 Android ではタッチID が順に割り振られるので、 ID が 0 のタッチを赤色の円で、 ID が 1 のタッチを緑色の円で描いている。 プログラム上は ID
MVVMパターン的な実装は、他のプラットフォームでは選択肢の一つにすぎませんが、WPF/Silverlight(Windows Phone 7 含む)においては唯一の選択肢です。コードビハインドを書かないことはMVVMパターンそのものの定義とは関係ありません。まずはスキルにあったレベルでMVVMパターンを意識した実装を初めてみませんか? 以前の勉強会発表資料(わんくま勉強会での発表資料の半分以上をカットし、Androidテスト祭り分追加)を加工し、社内勉強会、そのほかの勉強会・ブログなどで自由に使える資料として公開します。私の個人名は抜いてあります。 無許可の改変・引用なども問題ありません。ただ、資料の直接の商用利用などはご遠慮ください。 ブログに張り付けたい場合、下のbマークから埋め込み用URLを取得できます。 「コードビハインドを書くのはMVVMパターンではない」などの誤解が、MVVM
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く