Adobe XDを触ってみる日記#2
XDでボタンを作るには以下の記事にあるように、コンポーネントを作ってプロトタイプタブからアクションを設定すればよい。 www.ecco.jp
Adobe XDを触ってみる日記#1
プロトタイピングのために、AdobeXDを触っている。これについても進捗をメモしていきたい。 アートボードを遷移でつなぎ、それなりに動く見た目にはなったが、ボタンがたくさんあるような設定画面で個々のボタンのためにアートボードを増やしたくはない。。。いい方法はないものかと調査中。あるあるだし簡単に実装できる方法があってもおかしくないので、チュートリアル動画を眺める。
シンボル化: シンボル化すると便利。
Androidアプリ開発日記#2 Android jetpackってなんだよ
Android jetpackというものがあるらしい。紹介動画を見る限り、GUIでいい感じに作れるし、過去互換もある程度保証してくれそうだし、UIなど4つのパートから構成されていて、個別に使うことも可能な様子。知人が「GUIでいい感じに生成できる」と言っていたのはこれだろう。Android開発の入門書(きっとAndroid studioの操作説明からはじまり、書いてあるままに読み進めれば、書いてある内容はとりあえず作れるタイプの入門書。途中で飽きてやらなくなるパターンの奴。)を読んで何となくアプリを作っているのはこれに違いない。おそらくこれを採用するのが無難なのだろうが、なぜそれなのだという背景くらいはおさえておきたい。 developer.android.com
それを確認するにはこちらのドキュメント。(ここに書いてあるように、アーキテクチャに関心を持つのはまだ早い気もするが。サクッと読もう。) developer.android.com
禁じ手:アプリのデータや状態をアプリコンポーネント内に保存してはならない。(おいおい、じゃあ一体どうしたらいいんだよ。と思わせて、すぐ解決策を示すのは関心の引き方として見習いたい。)
Table of contents アプリの推奨アーキテクチャ,概要までをまず理解したい。 関心の分離、UIをモデルで操作する、アプリコンポーネント、アーキテクチャコンポーネント
コンポーネント、モジュール、パッケージ このあたりの用語をごっちゃにしているところがあるのでこれらも今度整理しよう。
Androidアプリ開発日記#1
ユースケースからスクラッチでソフトウェア設計をする方法は知っているけれど、Androidアプリを開発する上でモダンな設計方法は知らなかったりする。 ユースケースを書いて、ユースケース図を描いて、ロバストネス図を描いて...と、ICONIXが好みで使うことが多いから、いつもの調子で(思考停止で)設計をしていたが、これでよいのだろうかと立ち止まる。組込ソフトウェアを自社開発しているわけではないのだから、もっと良い(スマートな)方法が用意されているはずだし、先人が考案してくれているはずである。ということで調べてみると、以下の記事が参考になりそうである。簡単なMVPを作るにしても、何も知らずぐっちゃぐちゃというのもよろしくないので、はまり込まない程度に一通り目を通してみたい。
GO日記#2 A tour of Go.
A tour of Goの続き:
- 大文字で始まる関数は、外部から参照できるExported name.
Exported nameの場合、コメントの付与をコンパイラから推奨される。 関数の型名は後ろに書く...直感的には気持ち悪い。
理由は↓にあるらしい。後で読む。 blog.golang.org変数型名の省略が可。//これが有効な場面とは?
- := は、型の省略ができる変数定義 //後で出てくる。
- 関数は複数の戻り値を返せる
package main import "fmt" func swap(x, y string) (string, string) { return y, x // 複数の戻り値 } func main() { a, b := swap("hello", "world") fmt.Println(a, b) }
- Named return value. "Naked" return returnには何も書かず、冒頭で定義した変数が戻る。 関数の冒頭で、何が戻るか判るから可読性が向上する? こういう書き方もできると知っておけばよい気がする。 A tour of Goの説明にもあるように、一目でわかるレベルの関数であれば有効か。(5行程度までかな。)
package main import "fmt" func split(sum int) (x, y int) { //ここで定義 x = sum * 4 / 9 y = sum - x return //ここは何も書かなくとも、x,yが戻り値になる。 } func main() { fmt.Println(split(17)) }
- var 変数宣言を、一度に行える。
package main import "fmt" var c, python, java bool //ここ。 func main() { var i int fmt.Println(i, c, python, java) }
- 初期化子 Initilaizer 初期化子が持つ型によって、型宣言を省略できる。 // 何がうれしいの?いつうれしいの?デメリットは?
package main import "fmt" var i, j int = 1, 2 func main() { var c, python, java = true, false, "no!" //型宣言の省略 fmt.Println(i, j, c, python, java) }
- := 変数定義かつ初期化が可能 関数の中限定 //なんで?
package main import "fmt" func main() { var i, j int = 1, 2 k := 3 //変数定義かつ初期化 c, python, java := true, false, "no!" fmt.Println(i, j, k, c, python, java) }
GO日記#1
Visual Studio Codeでgoを書いていると、import分が勝手に消えて四苦八苦した。 原因はフォーマッタ。 Goは使用していないimport文があるとエラーとなるが、 VScodeのデフォルトのフォーマッタでは、"math"が使用されていないと判断されて消えてしまう。 まるで読み取り専用になっているような挙動。。。
package main import ( "fmt" "math" //←ここが勝手に消える ) func main() { fmt.Println(math.Pi) }
以下の記事により解決しました。 qiita.com