Android 開発、向きを設定

静的に指定する場合

下記のようにAndroidManifest.xmlで指定する。

  • 縦固定
AndroidManifest.xml
<activity
    android:name=".MainActivity"
    android:screenOrientation="portrait">
  • 横固定
AndroidManifest.xml
<activity
    android:name=".MainActivity"
    android:screenOrientation="landscape">
  • 自動
AndroidManifest.xml
<activity
    android:name=".MainActivity"
    android:screenOrientation="unspecified"> <!-- 未指定でもOK! というか、普通は未指定 -->

動的に指定する場合

下記のように Activity#setRequestedOrientation を呼び出す。
呼び出した結果、実際に画面の向きが変わった場合はActivityが再生成される(android:onConfigChangesでorientation等を指定していなければ)。

  • 縦固定
MainActivity.java
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  • 横固定
MainActivity.java
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  • 自動
MainActivity.java
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

初Android開発

環境

Android Studio

起動

なぜかデフォルトのままエミュレータが起動しない。
後程原因判明: vagrantvirtualboxを起動しているのは理由。
$vagrant haltで問題解決。

仕方なく実機で確認することに。

Activity

アプリで言うと画面のこと。iOSの場合StoryBoradで描くViewと同じ。

  • activity間遷移
Intent intent = new Intent(getApplicationContext(),JoinActivity.class);
startActivity(intent);
  • Toastの表示

引数で表示時間設定。メソッドで表示position設定

Toast ts = Toast.makeText(this, "You did not enter a nickname", Toast.LENGTH_SHORT);
ts.setGravity(Gravity.TOP, 0, 0);
ts.show();
  • タイトルバーの非表示

AppCompatActivityを普通のActivityに変える。

もしくは、動的に切り替え:
/ 非表示 /
getSupportActionBar().hide();

/ 表示 /
getSupportActionBar().show();

AngularJS サーバサイドJSONレスポンスのスタブを作成

WEBサービスを実現する場合、フロントエンドからバックエンドのAPIサーバにアクセスすることが多いと思いますが、バックエンド側がまだ開発途中であったりすると、代替としてNode.js等でスタブのアプリケーションを作ったり、または固定のJSONファイルを作ったりと、割と手間がかかってしまいます。

今回、ためしに AngularJS の ngMockE2E を利用して、擬似的なAPIサーバを構築してみたので、その方法を紹介します。

前提

  • Yeomanで構築したAngularJS開発環境が前提です。

  • 別途 ngMockライブラリをインストール場合も、Bower を使えば簡単にできます。

    • $ bower install angular-mocks

ngMockを使う準備

①index.htmlからngMockのJSファイルをロード

app/index.html
<script src="bower_components/angular-mocks/angular-mocks.js"></script>

②ルートモジュールにngMockE2Eを追加

app/scripts/app.js
'use strict';

angular.module('ngMockTestApp', [
  'ngCookies',
  'ngResource',
  'ngSanitize',
  'ngRoute',
+  'ngMockE2E'
])
  .config(['$routeProvider', function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  }]);

これで準備は完了です。

疑似APIサーバの処理を書く

  • 先程と同じ app.js に、.run 以降を追記してみます。
    • 面倒なのでこうしてますが、本当はファイルを分けた方がいいです。
app/scripts/app.js
'use strict';

angular.module('ngMockTestApp', [
  'ngCookies',
  'ngResource',
  'ngSanitize',
  'ngRoute',
  'ngMockE2E'
])
  .config(['$routeProvider', function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  }])
  .run(['$httpBackend', function ($httpBackend) {

    $httpBackend.whenGET(/^views\//).passThrough();

    var sample = [
      {
        "id": "1",
        "name": "山田"
      },
      {
        "id": "2",
        "name": "鈴木"
      }
    ];

    $httpBackend.whenGET('data/sample.json?hoge=1').respond(200, sample, {});

    $httpBackend.whenGET('data/sample.json?hoge=2').respond(function(method, url, data, headers) {
            return [200, sample, {}];
    });

  }])
;

動作確認

ここは何でもいいのですが、APIを叩く処理を書きます。

まず、APIにアクセスするFactoryを作って、

app/scripts/services/data.js
'use strict';

angular.module('ngMockTestApp')
  .factory('JsonData', function ($http) {

    return {

      getSampleData: function () {

        return $http.get('data/sample.json?hoge=1')

          .success(function(data, status, headers, config) {

            return data;

          });

      }

    }

  })
;

Controllerから呼び出し、

app/scripts/controllers/main.js
'use strict';

angular.module('ngMockTestApp')
  .controller('MainCtrl', ['$scope', 'JsonData', function ($scope, JsonData) {

    JsonData.getSampleData().then(function(res){

      $scope.items = res.data;

    });

  }])
;

Viewで描写します。

app/views/main.html
<!-- 対応する Controller は app.js の $routeProvider で定義済み -->
<li ng-repeat="item in items">
  {{item.id}} - {{item.name}}
</li>

結果はこんな感じ。表示されました!

スクリーンショット 2014-05-13 15.06.07.png

疑似APIサーバの処理をみてみる

  .run(['$httpBackend', function ($httpBackend) {

    $httpBackend.whenGET(/^views\//).passThrough();

    var sample = [
      {
        "id": "1",
        "name": "山田"
      },
      {
        "id": "2",
        "name": "鈴木"
      }
    ];

    $httpBackend.whenGET('data/sample.json?hoge=1').respond(200, sample, {});

    $httpBackend.whenGET('data/sample.json?hoge=2').respond(function(method, url, data, headers) {
            return [200, sample, {}];
    });

  }])

全ての HTTPアクセスがこのロジックを経由します。
で、ここに全てのHTTPアクセスについて定義しないとエラーになるので、注意が必要です。
正規表現はつかえます。)

.passThrough()は何もしない、という意味です。テンプレートのアクセスもHTTP経由なので、「URLが views/で始まる場合は何もしない」というふうに記載しています。

whenGET でURLを定義し、対応するレスポンスを .respond に記載します。今回は2パターンを記載してみました。

上のパターンは、単純に用意されたJSONデータをレスポンンスしています。

下のパターンは、JavaScriptでいろいろ処理させてからレスポンンスさせるパターンです。
この例だと、結局JSONをレスポンスしているだけですが、判定処理とか動的なJSONファイルの生成処理がここに書けるわけです。

ほか

 

qiita.com

中国向けB2Cプラットフォームの選択

跨境电商解决方案

www.shopex.cn

http://www.qianmi.com/solutions/kj/

跨境电商解决方案-千米网:专业的电商解决方案提供商 - 千米网-专业的电商SaaS系统及服务提供商,为企业提供全方位电商解决方案

法人税金いろいろ、源泉所得税の納付

源泉徴収した所得税と復興特別所得税の納期の特例を受けた場合の納付期限

源泉徴収した所得税と復興特別所得税の納期の特例を受けた場合は、

その年の1月から6月までに源泉徴収した所得税と復興特別所得税については7月10日

その年の7月から12月までに源泉徴収した所得税と復興特別所得税については、翌年1月20日

源泉所得税を納付する4つの方法

はてなブックマーク - 源泉所得税を納付する4つの方法
LINEで送る

今日は,源泉所得税の納付の期限(特例の場合)に関する記事です。
源泉所得税とは,
給与や報酬(税理士等)を支払った際に差し引く税金であり,
原則として,支払った日の翌月10日に納付します。
ただし,従業員が常時10人未満の場合には,特例が2つあります。
1つめは
1月~6月分を7月10日,7月~12月分を翌年1月10日に支払う納期の特例
2つめは
翌年1月10日の納期限を1月20日に延長する特例
です。
年明けは慌ただしいこともあり,通常は上記2つの特例を適用しています。
※特例の適用を受けるには,届出書の提出が必要です。
こちらの届出書1枚で上記2つの特例が適用されます。
http://www.nta.go.jp/tetsuzuki/shinsei/annai/gensen/annai/1648_14.htm
この源泉所得税を納付する方法は,4つあります。
それらの方法について,取り上げました。
1 納付書により銀行・郵便局で納付
(1)納付書とは
納付書とは,次の画像のような用紙です。
大人の数字力を高めるブログ by Newtype税理士井ノ上陽一|東京都千代田区の税理士
3枚複写になっていますので,そのまま控となります。
この納付書は,税務署から送られてくる他,税務署で入手が可能です。
返信用封筒をいれて,郵送で請求することもできます。
納付書は,前述の特例用と,原則(毎月支払)用の2枚があります。

(2)納付
必要事項を記入した納付書により,銀行・郵便局等の窓口で支払います。

(3)申告と納付
税務署側は源泉所得税の金額をその都度把握できませんので,
こちらから申告しなければいけません。
この方法は,源泉所得税の申告と納付を同時に行うものです。

 

2 e-TAXにより申告し,ネットバンキングで納付
(1)申告
上記の方法と異なり,申告と納付を分けて行う方法です。
e-Taxにより,まず源泉所得税額を申告します。
具体的には,
給与の支払年月日,支払金額,人員,源泉徴収税額
報酬の支払年月日,支払金額,人員,源泉徴収税額
などといった内容です。
(2)開始届
前提として,e-Taxの開始届を提出します。
こちらもネットで提出が可能です。
https://www.e-tax.nta.go.jp/todokedesyo/kaishi_confirm.html
この開始届により,利用者識別番号が割り振られます。
暗証番号(申告に必要),確認番号(納税に必要)はこちらで設定するものです。
(3)申告ソフト
申告ソフトは,国税庁e-Taxソフトや税務の専門ソフトを使います。
私が使っている税務専門のソフトは,
源泉所得税e-Taxによる申告に対応していませんので,
国税庁のものを使っています。(需要がないのでしょうか・・・)
http://www.e-tax.nta.go.jp/download/index.html
(4)申告に必要なもの
利用者識別番号と暗証番号があれば,申告できます。
通常,e-TAXには,電子証明書住基カード等)が必要ですが,
この手続きには必要がありません。
会社側で導入することも可能です。
(5)申告の流れ
必要事項を入力して,申告すると,次のような番号が発行されます。
収納機関番号 00200
納付番号 21940106xxxxxxxx
確認番号 xxxxxx
納付区分 921021xxxx
収納機関番号は,国税に関する納付はすべて同じです。
納付番号は,利用者識別番号です。
確認番号は,開始届の際に設定するものです。
納付区分は,それぞれの申告・納税に振られるものです。
(5)ネットバンキング
当事務所の場合は,上記の業務を当事務所で行い,
このネットバンキングによる納税のみ,クライアント側で行っていただいております。
当事務所で計算,申告した後,上記の番号をメールで送付しています。
ネットバンキングの「ペイジーPay-easy)」や税金支払の機能を使い,
上記(5)の番号を入力します。
入力後に表示される税金の金額,会社名等を確認後,納税します。
正しい番号を入力すれば,納税する金額を間違えることはありません。

(6)特徴
・手続きをした日に引き落とされてしまいます。引き落としの予約はできません。
・振込手数料はかかりません。
・領収書はありません。
e-TAXによる申告後の確認メッセージ及び預金の引き落とし額が証明となります。