ionic(cordova)で複数人でチーム開発するときのながれメモ
1人でやってるときは問題なかったけど、複数人でやってるときに最初うまくいかずにハマったのでメモしておく。
新規プロジェクト作成の場合
新規にプロジェクトを作成してandroid を追加(iosはデフォルトで登録済み)
$ ionic start sampleApp blank -a "アプリ名" -i com.example.sampleApp # プロジェクト作成 $ ionic platform add android # android追加 $ ionic state save # package.jsonへ保存
gitのリモートリポジトリへPUSH
$ git push origin master
別の開発者の作業
$ git clone http://path/to/repo.git $ ionic state reset
ionic(cordova)で本番環境、開発環境を切り替える
ionicに限った話じゃないかもしれないけど。
今回やりたかったのは、本番と開発でつなぎこむAPIのURL等を切り替えたりしたかった。
今回は少し調べて、node-env-fileというのを使った。
また、gulp-concatも使ってる。
今回は以下のようなファイル構成を想定。環境によって切り替えたい値はここで定義するイメージ。
www/js/config/development.js www/js/config/staging.js www/js/config/production.js
development.js
angular.module('starter.values') .value('config', { api_url: "http://example.com" });
こんなようなファイルを環境ごとにつくるイメージ。
インストール
$ npm install node-env-file
.env ファイルを新規で作成
# mode=production # mode=staging mode=development
gulpfile.jsを編集
var env = require('node-env-file'); env(__dirname + "/.env"); var conffile = "config." . process.env.mode . ".js"; gulp.task("js.concat-values", function() { return gulp.src(["www/js/config/" + confifile]) .pipe(concat("config.js")) .pipe(gulp.dest("www/build/js")); });
あとはwww/index.htmlで上記つくったファイルを読み込む
<script src="build/js/config.js"></script>
なんかヌケがありそうだけどイメージはこんな感じ。あとで追記するかも。以上です。
ionic(cordova)で横スクロールするメニューを実装するときのメモ
cssでの実装でこちらを参考にそのままいけました。
Appleに学ぶ、横スクロールナビを組む時のCSSメモ - Qiita
Horizontal Scrollable Navigation Sample
が、ionic serveでブラウザで確認したところ問題なかったのだがビルドしてアプリとして確認したところ動かず。
<ion-contet overflow-scroll="true"> ・・・ </ion-content>
overflow-scrollが必要でした。ionic serveでは動くのにアプリで動かないというのがよくわからなかったのですが。。。以上です
【mysql】特定のキーワードが入っているレコードでソートする方法メモ
こんなことができたのか
キーワードがあるものを上にもってくる。
select id, title from daily order by title like "%キーワード%" desc;
以上です
【cakephp】サブクエリを実行する方法メモ
サブクエリのサンプルメモ。
ついでにgroup by した結果のレコード数を求めるサンプル。
$dbo = $this->MyTable->getDataSource(); $subQuery = $dbo->buildStatement(array( "fields" => array("distinct MyTable.id"), "table" => "my_table", "alias" => "MyTable", "conditions" => array( "MyTable.deleted =" => 0, ), "joins" => array( "type" => "left", "table" => "other_table", "alias" => "OtherTable", "condition" => array( MyTable.id = OtherTable.my_table_id, ), ), "group" => array( "MyTable.id", ), )); $query = "select count(*) as cnt from ({$subQuery}) as tmp"; $result = $this->MyTable->query($query);
以上です。
【cakephp】paginateでのorderが効かなかった時の対応
また、たまにしか触らないcakephpではまった。しかもバージョン1
paginateでなぜかorderだけ効かなかった
こんな感じの基本的?なもので他では動いていたのに。。。
$this->paginate = array( "fields" => array( "Table.field1", "Table.field2", ), "order" => array( "Table.field1 asc", "Table.field2 desc", ), "limit" => 30, ); $this->paginate("Table", array( "and" => array( "Table.deleted" => 0 ), ));
原因はurlパラメータにsortという名前の含まれていたのが原因だったぽい。
http://example.com/sort:1/・・・動かない
http://example.com/sort2:1/・・・動いた
こんなことありえるのか。。。このアプリケーションの問題なのかcakephpの仕組みの問題なのか追求する気力はないのでとりあえず完了としよう。。。以上です
【ionic】ionic buildでgulpを実行する
今回やりたかったのは、ionic buildでもgulpが動くようにしたかった。
https://codepen.io/leob6/post/quick-tip-using-gulp-to-customize-the-serve-run-and-build-process-for-your-ionic-framework-apps
こちらにやり方書いてあった。
gulpfile.jsの例
gulp.task("js.concat-controllers", function() { return gulp.src("www/js/controllers/**/*.js") .pipe(concat("controllers.js")) .pipe(gulp.dest("www/build/js")); });
今回はwww/js/controllers以下のファイルをwww/build/js/controller.jsに結合して出力するようにしてみた。
で、さらに以下を追加
gulp.task('build:before', ['js.concat-controllers']);
で、以下を実行するとちゃんとcontroller.jsが生成されることが確認できました。
$ ionic build
以上です。