サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
www.office-matsunaga.biz
アプリからサーバにHTTPでGET、あるいはPOSTリクエストすることは結構あると思う。しかし、それはiOSだとなかなか面倒だったりする。早速GETから。 HTTPリクエストに必要なものはURLRequestとURLSessionの2つである。まずはURLを指定してURLRequestを生成する。次に、URLSessionだが、Webページを取得する等の単純なGETならsharedメソッドから共有のセッションを取得すれば良いだろう。 そして、取得したセッションのdataTaskメソッドにURLRequestを渡して呼び出し、生成されたタスクのresumeメソッドを呼び出せばGETリクエストできる。 let url = URL(string: "http://192.168.0.xx:8080/") let request = URLRequest(url: url!) let sessio
iOSでGPSから現在位置を取得するために必要な事は概ね以下になる。 CoreLocationをimport ViewControllerクラスでCLLocationManagerDelegateを継承 locationManager:didUpdateLocationsデリゲートメソッドを作成 CLLocationManagerのインスタンスを生成 生成したインスタンスにデリゲート割り当て 生成したインスタンスのstartUpdatingLocationメソッド呼び出し SwiftでGPSから位置情報を取得する場合も、必要なことは本質的にObjective-Cの場合と同じである。しかし、Swiftの場合CoreLocation.frameworkのリンクは不要で、かつコードもallocやらinitやらがない分Objective-Cよりも簡潔な印象を受ける。 まず、ViewControll
Arrayのsortメソッドを使うと、その配列自身をソートすることができる。対象の配列は文字列であっても数値であっても良い。sortメソッドに渡す比較演算子(より厳密に言うと演算子関数)によって昇順、または降順を選択できる。例えば、sortメソッドに比較演算子(<)を渡すと配列は昇順にソートされる。 // sortメソッドは配列そのものをソートする var stationery = ["stapler", "pen", "scissors"] stationery.sort(by: <) for s in stationery { print(s) } 上記のコードの実行結果は以下になる。 pen scissors stapler コードの可読性を良くしたいなら、sortメソッドに比較演算子でなく、以下のようにクロージャを渡しても良いだろう。 stationery.sort { $0 <
正規表現を使って文字列中にある任意のパターンにマッチした部分文字列を抽出する。NSRegularExpressionを使うと、正規表現を用いた文字列のマッチ、及び抽出を行うことができる。 グループ機能にも対応しており、正規表現パターン中の()で括った部分文字列をキャプチャすることもできる。正規表現パターンにおける各グループは、firstMatchメソッドから返されるNSTextCheckingResultオブジェクトのrangeメソッドで取得できる。 検索対象の文字列から、マッチさせたグループ毎に文字列を抽出するためにNSStringのsubstringメソッドを使う。このため、予め検索対象の文字列をNSStringにキャストする等しておくと後で楽かも知れない。 // 正規表現を使って文字列を抽出 // NSRangeを扱うので検索対象の文字列は先にNSStringにしておくと後で楽かも
複数の環境変数を設定するシェルスクリプトを書いていざ実行してみると、何度やっても環境変数が設定されないといった経験はないだろうか。 それもそのはず、シェルスクリプトが実行されるとき、別のシェルが新たに起動してそこで実行されているのである。シェルスクリプトが終了するとそれを起動した元のシェルに戻り、環境変数の設定や変更は全く反映されていない。 シェルスクリプトで現在の環境に対して環境変数の設定及び変更をするには、そのシェルスクリプトを現環境(現在のシェル)で実行する必要があるのだ。そのためにはsourceコマンドでシェルスクリプトを実行する必要がある。 [mobile@localhost mobile]$ source setenv.sh sourceコマンドの代わりに.(ピリオド)でも同じ結果が得られる。また、.bash_profileを書き換えたときにもsourceコマンドで実行すれば、
ボタンのonClickイベント等で時間のかかる処理を行って、他のユーザーインターフェイス(以下UI)コンポーネントの処理が止まってしまったことはないだろうか。AndroidのUIはシングルスレッドで処理されるため、あるUIコンポーネントの処理が終わらないうちは次のUIコンポーネントの処理を行うことができないからだ。 ワーカースレッドの生成 Androidでは、UIを司るスレッドをメインスレッドあるいはUIスレッドと呼び、これをブロックさせてはならない。もし、ボタンのイベント等で時間のかかる処理を行いたい場合、ワーカースレッドを生成する等してメインスレッドをブロックしないようにすることが重要である。 button1 = (Button)findViewById(R.id.button1); button1.setOnClickListener(new View.OnClickListener
文字コードにUTF-8を採用している環境において、sprintfで%sで幅を指定して文字列を表示させて「あれ?」と思ったことはないだろうか。UTF-8では全角1文字のバイト数は3バイトになるので、sprintfで%8s等と指定しても全角文字があると意図した通りにならない。これは以下のコードで一応解決できる。 require "kconv" $KCODE = "UTF8" s = "日本語" print(sprintf("|%-*s|\n",8 + s.length - s.tosjis.length,s)) ただし、kconvによる文字コードの変換は割と不親切で、ちょっと特殊な文字だとinvalid encodingになるので、そのちょっと特殊な文字を扱いたい場合は予め削除する等の対策が必要となる。 UTF-8環境でsprintfで幅指定をしても日本語の文字列が正しく表示されない理由はこう
TOP> オープンソースソフトウェア環境構築> LVS(Linux Virtual Server)によるロードバランサの構成(VirtualBox編) LVS(Linux Virtual Server)によるロードバランサの構成(VirtualBox編) LVS(Linux Virtual Server)とは? LVS(Linux Virtual Server)はLinuxをロードバランサとして利用することができる優れもののソフトウェア機能だ。既に当サイトではVirtual PCを利用して負荷分散環境を構築したが、今回はVirtualBoxとFedora 8(以下、Fedora)で同様の環境を構築する。VirtualBoxにFedoraをインストールする方法はこちらを参照していただきたい。 LVSにはいくつかの構成方法があるが、今回も最も設定が簡単なNAT(Network Address
TOP> オープンソースソフトウェア環境構築> LVS(Linux Virtual Server)による負荷分散環境の構築 LVS(Linux Virtual Server)による負荷分散環境の構築 LVS(Linux Virtual Server)とは? LVS(Linux Virtual Server)はLinuxを負荷分散装置(ロードバランサとも言う)として利用することができる優れもののソフトウェア機能だ。ソフトウェア機能と言ったのは最近のディストリビューションではすでにカーネルにそれが組み込まれているからだ。 今回はFedora Core 5でこの機能を確認してみたい。LVSにはいくつかの構成方法があるが、最も設定が簡単なNAT(Network Address Translation)で負荷分散環境を構成してみたいと思う。このためにはマシンが3台必要となるが、Virtual PCを
FirefoxにあるoverrideMimeTypeはIE7のXMLHttpRequestでも実装されていないようだ。 <XMLHttpRequest Object> http://msdn2.microsoft.com/en-us/library/ms535874(VS.85).aspx <XMLHttpRequest> http://developer.mozilla.org/ja/docs/XMLHttpRequest <The XMLHttpRequest Object> http://www.w3.org/TR/XMLHttpRequest/ openメソッド new XMLHttpRequest()でインスタンスを生成した後にやることは、openメソッドによる初期化である。openメソッドではGETやPOST等HTTPメソッド(大文字で指定)、及びURLのほかに処理を非同期で行
TOP> オープンソースソフトウェア環境構築> mod_jkによるApache-GlassFish連携環境の構築 mod_jkによるApache-GlassFish連携環境の構築 GlassFishとApacheの連携 mod_jkによるApache-GlassFish連携環境を構築する機会があったのでここに紹介したい。mod_jkによってApacheとTomcatを連携させるのは良く知られているが、ApacheとGlassFishでも同じことが可能である。ただし、やることは非常に多く難易度は高い。ネタ元は↓。 <Amy Roh's Blog> http://weblogs.java.net/blog/amyroh/archive/2006/08/glassfish_suppo.html Apache-GlassFish連携に必要なもの Apache-GlassFish連携環境の構築はFe
C#, Java, Scala, Swift & Ruby Developer http://www.office-matsunaga.biz/
TOP> オープンソースソフトウェア環境構築> Tomcat環境構築メモ Tomcat環境構築メモ ログアウトするとTomcatが終了してしまう TomcatでWEBアプリケーションを開発していて、モノが出来上がりいよいよ本番環境で動かすというときに、Tomcatを起動したターミナルをログアウトするとTomcatが終了してしまうと言った現象に悩まされたことはないだろうか?これはそのターミナルをログアウトするときにTomcatにSIGHUPが送られ、Tomcatはこれを受けて終了してしまうためで正常な動作である。 これを防ぐにはnohupコマンドを使用してTomcatを起動し、SIGHUPを無視すればよい。以下のように入力することによって、ターミナルをログアウトしてもTomcatは動き続けることができる。 $ nohup ./startup.sh & JDBCドライバをインストールする(Po
このページを最初にブックマークしてみませんか?
『モバイル開発系(K)-Android、C#、Scala、Ruby、iOS等の開発関連情報-』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く