GithubHelp home page GithubHelp logo

techbooster / androidopentextbook Goto Github PK

View Code? Open in Web Editor NEW
252.0 252.0 26.0 85.34 MB

オープンソースで作るAndroidの教科書です

JavaScript 1.12% HTML 2.69% TeX 18.17% Arduino 0.80% Java 72.71% Python 3.46% Ruby 1.05%

androidopentextbook's People

Contributors

androhi avatar dmiyakawa avatar eaglesakura avatar fkmhrk avatar kassy-kz avatar mhidaka avatar misato-okaneya avatar muojp avatar oranie avatar sys1yagi avatar tommmmmmmmy avatar tomorrowkey avatar tomovwgti avatar vvakame avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

androidopentextbook's Issues

UI-Basicについてテーブルに見出しを付けてください

テーブル要素のうち、最初の行に見出しを追加して下さい(UI-Basic全般)

//table[ex][これはサンプルです]{
要素名 説明
top 上に寄せる
bottom 下に寄せる
left 左に寄せる
right 右に寄せる
center_vertical 垂直方向**にそろえる
center_hotizontal 水平方向**にそろえる
center 画面の**にそろえる
//}

ビルドの成果物に箇条書きのテキストが表示されない

grunt pdf, grunt html, 共に同様の症状です(画像はpdfのもの)。

Re:VIEW の利用経験は全くないので、原因がわかりません。どんな解決策があるんでしょうか。

2015-06-17 10 06 11

環境

READMEのビルド方法を見ながらビルド環境を用意しました。

$ sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.10.3
BuildVersion:   14D136

$ grunt --version
grunt-cli v0.1.13
grunt v0.4.4

## 数あるRe:VIEWのコマンドから無作為に一つを選択してバージョンを表示
$ review-check --version
review-check 1.5.0

$ tex --version
TeX 3.14159265 (TeX Live 2015)
kpathsea version 6.2.1
(ライセンスは省略)

2Dグラフィックスの章が欲しい

今の目次構成案だと、3Dがクローズアップされてて、2Dグラフィックス部分はないかも?となってるので、Issue化しました。

2Dグラフィックスの部分がないと、ライブ壁紙などのところがサポートできんのでは?と思ってます。

`grunt pdf` not working

Re:VIEWの問題な気もしますが、PDFのビルドがうまくいきません。MacTeXなど必要なツールチェインはインストールしていると思います。

該当箇所は https://github.com/kmuto/review/blob/v1.4.0/lib%2Freview%2Fpdfmaker.rb#L159 なのでそもそもPDFの生成がうまくいっていない…。同じような症状の方います?

# Re:VIEWはgem install reviewで入れた最新版
$ review-compile --version
review-compile 1.4.0

$ grunt pdf
Running "exec:clean" (exec) task
Removing articles/accessibility.html
Removing articles/arduino-01.html
Removing articles/background01.html
Removing articles/graphics-01.html
Removing articles/multidevice-01.html
Removing articles/netdevice-01.html
Removing articles/netdevice-02.html
Removing articles/network-01.html
Removing articles/preface.html
Removing articles/sensor-01.html
Removing articles/ui-01.html
Removing articles/uibasic-01.html
Removing articles/uibasic-02.html
Removing articles/webserver-01.html

Running "exec:preprocess" (exec) task
review-preproc -r --tabwidth=2 sample.re

Running "exec:compile2pdf" (exec) task
>> compiling preface.tex
>> compiling uibasic-01.tex
>> compiling uibasic-02.tex
>> compiling background01.tex
>> compiling sensor-01.tex
>> compiling arduino-01.tex
>> compiling network-01.tex
>> compiling netdevice-01.tex
>> compiling netdevice-02.tex
>> compiling graphics-01.tex
>> warning: no ID of (list|listnum) in //listnum[][ES20Utilクラス 抜粋]{
>> compiling multidevice-01.tex
>> compiling accessibility.tex
>> compiling ui-01.tex
>> compiling webserver-01.tex
>> /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/2.1.0/fileutils.rb:1401:in `initialize'
>> : No such file or directory @ rb_sysopen - ./book-pdf/book.pdf (Errno::ENOENT)
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/2.1.0/fileutils.rb:1401:in `open'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/2.1.0/fileutils.rb:1401:in `copy_file'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/2.1.0/fileutils.rb:483:in `copy_file'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/2.1.0/fileutils.rb:400:in `block in cp'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/2.1.0/fileutils.rb:1579:in `block in fu_each_src_dest'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/2.1.0/fileutils.rb:1595:in `fu_each_src_dest0'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/2.1.0/fileutils.rb:1577:in `fu_each_src_dest'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/2.1.0/fileutils.rb:399:in `cp'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/review-1.4.0/lib/review/pdfmaker.rb:159:in `generate_pdf'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/review-1.4.0/lib/review/pdfmaker.rb:92:in `execute'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/review-1.4.0/lib/review/pdfmaker.rb:56:in `execute'
>>  from /Users/gfx/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/review-1.4.0/bin/review-pdfmaker:18:in `<top (required)>'
>>  from /Users/gfx/.rbenv/versions/2.1.4/bin/review-pdfmaker:23:in `load'
>>  from /Users/gfx/.rbenv/versions/2.1.4/bin/review-pdfmaker:23:in `<main>'
>> Exited with code: 1.
Warning: Task "exec:compile2pdf" failed. Use --force to continue.

Aborted due to warnings.

【目次案】センサー周り

・センサーの種類と原理(一般論。簡単な回路系まで言及するか悩みどころ)
・Androidのセンサーの種類と特徴
・各センサーの紹介と利用方法
・センサーを使ったプログラミングについて
 ・実装センサーの一覧の取得
 ・各センサーの取得方法(主要なものいくつか)
・応用例
 ・センサーの組み合わせによる応用
 ・バックグラウンド実行におけるバッテリの考慮や画面オン時のみ利用など

◯センサー調べたらこんなにあんの?(ドコモ仕様確認ツール調べ)
・加速度
・重力
・ジャイロ
・照度
・地磁気
・回転ベクトル
・アンキャリブレート回転ベクトル
・地磁気回転ベクトル
・気圧
・近接
・温度
・歩数
・歩行検出
・GPS ← 独立章かな?

Re:VIEW文法における何度も間違う内容を覚えておく為のIssue

注意すべきReVIEW記法

  • コラムの中ではfootnoteが使用できない。
  • コラムの場所と閉じタグの運用について:コラムは同じ階層(節、項)の最後につく暗黙的な書籍作成ルールがあるので中途半端な位置で入れると死ぬ
  • tableは改行が聞かないため、容赦なくはみ出す。改行コードで自分で調整するかサイズを変更するか対応が迫られる

【目次案】ユーザーインターフェイス基礎

応用編のゆきさんと要相談!

▼用途から攻める

ボタン

テキスト・フォント

  • 画像でテキストを表現しない理由
  • テキストの扱い(Web/Android)
  • Android端末の内蔵フォントについて

画像

  • 通常の画像
  • 背景にしたい画像

これを知れば表現は無限に増える、9-patch

  • 9-patchとは?
  • 伸ばす
  • コンテンツが入る部分(余白)
  • 伸び率について
  • 大きすぎるとダメ

サンプル

  • 9-patchでボタンの背景にする
  • レイアウトで可能なこと

実際にデザインを作るときにどうする?

  • キャンバスサイズ
  • テキストの大きさの目安
  • どういうふうにエンジニアさんに渡せばいいのか?
  • 画像パーツの切り出しと名前の付け方
  • 画像を切り出さずに渡す場合

画像を使わないデザイン

  • コードだけでどこまでデザインが可能なのか
  • コードだけで可能なデザイン

▼上記に入るXML的な内容として想定しているもの

  • 基本的なレイアウト LinearLayout, RelativeLayout, FrameLayout
  • 通常画像 ImageView
  • 背景画像として使う styles.xml layer-listとか
  • ボタンのカスタマイズ Button, ImageButton
  • ボタンの状態変化(ステータス)
  • テキストの装飾 TextView

▼基礎なのか応用なのか?

カスタムUI

  • カスタムUIとは?
  • ラジオボタン、チェックボックスのカスタム
  • スライダーのカスタム
  • シークバーのカスタム
  • 円形アニメーション
  • 横向きバー

ActionBar

画面設計とか基礎の方がいいのか?

WIP【目次案】ユーザインタフェース応用

基礎で何やるかはっきりしないと何とも。。。

  • dp
  • レイアウトの種類(LinearLayout、RelativeLayout、、、)
  • リソース(リソース識別子、shapeなど含む)
  • 構成
  • ナビゲーション

初版の校正作業

順番に校正して目次とすりあわせる形で並べ直してからが本番。

WIP【目次案】外部ライブラリの章(または節)内容を考える

due_date: 2014/4/10

ゴール

本章を読む事で、Androidアプリケーションに外部ライブラリを組み込めるようになれる。自分でAndroidアプリケーション用のライブラリを作成できる。

今回含めない事

  • Mavan Centralでのライブラリ公開
  • Github等でのライブラリの公開

ネタ

  • ライブラリを使う
    • v4, v7
    • google play services
      • map v2
  • ライブラリプロジェクトを作る(両方)
  • ライブラリプロジェクトを参照する(両方)
  • jarを参照する(両方)
  • gradleで依存性管理をする(AS)
  • ライセンスに関する話
  • flatDirを使ってaarを参照する(AS)
  • githubにmaven repositoryをhostingする(AS)
  • 便利なOSSライブラリ

分ける?

  • google play servicesに関するもの

目次案

ライブラリ

【目次案】ネットワークデバイス(WiFi、Bluetooth)の章(または節)内容を考える

ネットワークデバイス(WiFi、Bluetooth):項目案

Bluetooth

  • Bluetooth通信の基礎知識・・・ネットワークプログラミングの章でどこまで説明してくれるかによって内容を考慮
  • プロファイルの種類
  • 自端末のBluetooth設定制御(BluetoothAdapter)
  • Bluetooth対応の外部デバイスの検索(BluetoothAdapter)
  • ペアリング済みデバイスの取得(BluetoothAdapter)
  • 検索されたデバイスに接続(クライアント端末として振る舞う)
  • 自端末を外部端末に発見可能にする
  • 外部デバイスからの接続要求を受ける(サーバ端末として振る舞う)
  • BluetoothSocketによるデータ通信
  • Bluetooth利用例

WiFi

  • WiFiの概要・・・ネットワークプログラミングの章でどこまで説明してくれるかによって内容を考慮
  • WiFiの設定制御
  • WiFiネットワークの検索
  • WiFiデバイスへの接続と認証方法
  • WiFiネットワーク設定情報の取得
  • WiFi接続情報の取得とその情報の使用例など

節は細かくなってしまいましたが、コードだったら2行〜3行の内容のものもあるので、合体してもよい節もあります。

pdf生成できない

くまった(・(ェ)・)

~/Book/AndroidOpenTextbook (master)$ grunt pdf
Running "exec:clean" (exec) task

Running "exec:preprocess" (exec) task
review-preproc -r --tabwidth=2 sample.re

Running "exec:compile2pdf" (exec) task
>> compiling preface.tex
>> 
>> compiling uibasic-01.tex
>> compiling uibasic-02.tex
>> compiling background01.tex
>> compiling sensor-01.tex
>> compiling arduino-01.tex
>> compiling network-01.tex
>> compiling netdevice-01.tex
>> compiling netdevice-02.tex
>> compiling graphics-01.tex
>> 
>> warning: no ID of (list|listnum) in //listnum[][ES20Utilクラス 抜粋]{
>> compiling multidevice-01.tex
>> compiling accessibility.tex
>> compiling ui-01.tex
>> compiling webserver-01.tex
>> compiling play-01.tex
>> /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1552:in `stat'
>> : No such file or directory - ./book-pdf/book.pdf (Errno::ENOENT)
>>  from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1552:in `block in fu_each_src_dest'
>>  from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1568:in `fu_each_src_dest0'
>>  from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1550:in `fu_each_src_dest'
>>  from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:393:in `cp'
>>  from /Users/tomorrowkey/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/review-1.4.0/lib/review/pdfmaker.rb:159:in `generate_pdf'
>>  from /Users/tomorrowkey/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/review-1.4.0/lib/review/pdfmaker.rb:92:in `execute'
>>  from /Users/tomorrowkey/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/review-1.4.0/lib/review/pdfmaker.rb:56:in `execute'
>>  from /Users/tomorrowkey/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/review-1.4.0/bin/review-pdfmaker:18:in `<top (required)>'
>>  from /usr/bin/review-pdfmaker:19:in `load'
>>  from /usr/bin/review-pdfmaker:19:in `<main>'
>> Exited with code: 1.
Warning: Task "exec:compile2pdf" failed. Use --force to continue.

Aborted due to warnings.
$ review-pdfmaker -v
review-pdfmaker 1.4.0

$ grunt -version
grunt-cli v0.1.13
grunt v0.4.4

multidevice-01.re校正完了

本文校正を完了しました。こちらも #@# コメントを追加しています。確認おねがいします!

【目次案】セキュリティ

表現は置いといて、以下のようなことが必要かと思います。

データを適切な場所に置け

内部ストレージと外部ストレージの使い分け

データの暗号化

暗号化は絶対ではない(アプリは必ず解析されるものと思え)

SSL/TLS

使い方

アンチパターン(証明書検証を無効化する)

開発中の無効化をリリースビルドに残さない方法 (Gradleを活用せよ)

AndroidManifest.xml の記載の注意

必要以上のパーミッションを宣言するな

android:exported を可能な限り false にせよ

外部サービス利用時のセキュリティ

例: OAuth での認可取得は外部ブラウザを使って実施せよ

リリースビルドではProGuardを使え

ProGuardbility を意識したコードの書き方

例: xml で onClick 宣言すると辛いことになる

【章の検討】IDE章について考える

Eclipse,Android Studioの基本的な事や、Graldeとかプロジェクトのマイグレーションとかまで色々ネタはありそう。

という事で色々とネタを出しつつ章としての体裁などなどを検討できたらいいかなと。

【目次案】ネットワークプログラミングの基礎の目次案を考える

項目案

ネットワークの基礎

  • クライアントとサーバ
  • TCP/IP
    さらっと紹介するだけ。詳しくはマスタリングTCP/IP読んでねみたいな感じだと思う

Androidのネットワークプログラミング

  • Androidアプリでネットワークを使うための知識
    • Permission
    • 通信方法の種類
    • モバイルという性質
    • メインスレッドと非同期スレッド
  • ソケットプログラミング
    • SocketServerとSocketClient
    • スレッド制御
  • HttpURLConnection
    • GET / POST
    • InputStream / OutputStream
  • HttpClient (Apache Http)
    • GET / POST
    • InputStream / OutputStream
  • メッセージキューとか

ライブラリを使ったネットワーク通信

その他

WebView...? WebView...?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.