Androidプログラミング質問スレ revision54
■ このスレッドは過去ログ倉庫に格納されています
開発者なら文句を言う前に良いと思う物を作って公開しろ
みんなが同意見ならあっという間にシェアトップだ >>63
何の画面のことだろう??
3.0からの新機能ではないのかな?
違ってたらすまん レイアウトをGUIで編集したことないな
もともと使いやすくはないし、xmlいじったほう早い うちもxmlでいじってる
デザイン画面なんて使うか? レイアウトをxmlで作るとか何の苦行だよ
エディタが使いにくいとか使いこなせてないだけだろう いまいち思い通りにconstraintが付かないから基本xmlいじってるわ
使い方悪いんだろうけど 基本Preview専用。
ConstraintLayoutだとちょっと便利かな?とは思うけど、
Relativeは使えなさ過ぎて、最悪。 エディタだと細かい部分が怪しいし、自分で書くに限る
コンストは意味不明で使ってない
レラティブは作るもの決まってる時は便利かもね
でも滅多に使わない xcodeと比較してるんだろうけどxml直書きは楽だぞ GUIでレイアウトする方が便利と思ってる人って単にxmlの書き方理解してないだけという印象
きちんと理解していればxmlで構造考えながら書かないとむしろ気持ち悪いと感じるだろう テキストもバイナリエディタで入力してはいかがですか? 意味が分からないのは単にバイナリの意味を理解してないだけという印象
きちんと理解していれはこの程度の嫌味もむしろ理解できるだろう レイアウトをコーディングした方がいいのは他に使い回せるからであって
同じ処理を何度もするなら関数にしろっていう基本中の基本と同じことなんだけどな GUIの時代にCUIへの回帰。発想が未だにvi使ってる犬厨の発想。
レイアウト設計なんてこれぞGUIの出番だというのに。 エディタだと、細かい設定どうなってるかを
後から確認し直さなきゃならない。
レイアウトの入れ子が意図通りなのか、
生成されたものを見直すのはしんどい。
それなら自分で最初から書く方が、把握してるぶんラクだ 記述方法に詳しくなくてもデザインできるのがGUIのいいところ。デザイナーは中身に詳しくなくてもデザインできる
車のドライバーがエンジンの詳細を知らなくても運転できるのと同じ。オブジェクト思考の発想。
基本中の基本なんたどけどな。30年前の構造化プログラミングで思考が止まってるのがvi使いの犬厨 GUIで見た目が合ってるから問題ないという感じでリリースされるから無駄に入れ子しまくりのクソ重い画面が出来上がるんだろうな レイアウトの細かい設定が確認できない、入れ子がどうなってるのかよく分からない。
それはそのエディタが欠陥品で糞なだけです。エディタ開発者に改善要望出してください。 >>82
それが許されるのは個人開発で小規模にやってる人だけだろう
それなりの規模になってくると、君が言うエンジンの詳細を把握して
最適化できる人間が設計しないと見た目はいいが動作はモッサリという残念な仕上がりになって
あっという間に低評価で埋まっておしまい スタジオのレイアウトエディタも悪くはないがこんな熱く擁護する奴が出てくるとは 擁護とは侵害だな。vi使いの慣れれば使いやすいという信仰が許せないだけ。
単にxml直書きに慣れてるというだけで苦行を薦める輩は駆逐しないとな。xmlは本質的に糞なんだよ。 自分が許す許さないとか、感情論で使う技術選ぶ時点でプログラマー失格かと おれの理想とするプログラマー論はマ板でやれ。「慣れれば使いやすい」という設計はいかがなものか、ということだ。
そしてviのようにな使いにくいソフトの信者ほど普及に熱心ということだ。そして被害者が拡大し、開発が遅れる。 練習なしでも使いやすくて簡単に100点取れるならそれを使えばいいが
実際にはそんな都合の良いものは存在せず、練習なしで使えるものは所詮平均点以下しか取れないのが現実
それなら慣れれば高得点取れる技術を習得する方が良い
そもそもviだろうがxmlだろうが1日あれば使えるだろうに何が苦行なのか
というか、XML弄らなくても同じレベルで勝手に最適化してくれるGUIエディタなんてあるなら早く教えてくれよ > そもそもviだろうがxmlだろうが1日あれば使えるだろう
騙されるな。邪教の信者はこうやって嘘をついて初心者を地獄に招きいれるのだ。
なぜLinuxで統合開発環境の普及が20年も遅れたのか。vi信者のせいだ。
その結果、linux陣営はGUIの開発が遅れ、20年も普及が遅れたのだ。googleが拾ってくれなければ消えていた。
というか、不満があるならGUIエディタの一つぐらい自分で作れ。 まぁ使いこなせるならどっちでもいいんだろうけど。
作るものが決まっていて、
設定項目も把握しているなら、
レイアウトエディタも悪くないのかもしれない。
または企画段階で、動かさず色々並べてみるとか。
細部を把握しつつ、構成を試行錯誤するなら、
迷わずコードで書いた方が修正しやすいと思う 自分が理解できない・使えないものを色々屁理屈こねて批判するだけ
残念な奴だな なんでAndroidStudioのレイアウトエディタの話でviが出てくるんだ?
普通AndroidStudioでやるよな? 自分の主張が弱いことを把握しているから何か別のものを叩くことで「俺の主張はこんなに優れているんだ!」と信じ込ませることが目的 >>78
レイアウトエディタはGUIでviewごとコピペできるよ?
>>81
左にComponent treeで構成出てるよ?
細かい設定もView fewer attributesでできるし、
それでも足りなきゃ下のタブやctrl+クリックでxmlに切り替えることもできる
関係ないけど俺vi使い >>97
プログラミングでの使い回しは単なるコピペではない
関数で言えば引数によって結果が変わるように、ベースは同じだけど微妙な違いがあるものを効率的に作るときにソースを読み書きする能力は必須 >>98
>>78と言ってる事ちがくねえ?
あとレイアウトエディタ使っててxmlが読めない奴なんかおらんでしょ?
一からタイピングするのが苦行だからエディタで工程ショートカットするだけじゃん? そのxmlが読めない奴がxmlに文句言ってるんだよなあ 楽譜が読めるとは頭の中でメロディを再現できるということ。このお玉じゃくしはドでこれはミでと読めるレベルではない。
xmlでレイアウトが書けるということは実行して表示しなくても頭の中でレイアウトが正しくイメージできているということ。
おまえの指摘は甚だレベルが低い。後30年経験積んだら相手してやる。馬鹿め。 で、xml直書きしなくてもそれと同レベルに自動的に最適化してくれるレイアウトエディタ早く教えてくれよ 頭おかしい人の書き込みを読むのは
クソコードを解読するような趣があるな 煽るだけの書きこみしかしない人って職場でどんな立場の人が分かるよな。とても残念な人生だよな。 cpuの脆弱性問題でbiosまでアップデートしたらエミュとか使い物にならなくなったりしないかな?
怖くてアップデートできないわ 関係あんのかなBIOSって起動初期だけちょこっと使われるだけじゃないの
起動後に悪用出来るのかしら biosまでアップデートするとパフォーマンスがかなり低下するって話しあるからね
ゲームなんかでもfps落ちるって云うしエミュには影響出そうな androidの場合にはPCで言うBIOSに当たる物は更新されないと
思うので関係ないと思うけど すいません、ここにはレイアウトに詳しい方々がいるようなので質問させてください
縦に長いアプリ画面を作っていると、端末の画面サイズによっては下の方の表示が切れます
これを解決するために、全てのレイアウトで一番上をScrollViewにしてしまおうと考えているのですが、この発想は危険でしょうか? 下にスクロールできることが一目見て分かるようになっていなかったらそもそもスクロールしようと思わないので下の方が無視される、ぐらいか AndroidStudioでSQLiteを使用してDBを作成した時、
DBファイルはアプリと同じ場所に出来ますが、PCからは権限が無い為に見れないですよね?
毎回ADBを起動するのも面倒だし、
内部ストレージの直下とかに作る方法ってありますでしょうか? >>113
sqliteopenhelper改造すればできそうだけど、dbファイルを好きなディレクトリにコピーしちゃう方がかんたんな気がする。 AndroidStudio3.0.1で作成したアプリって、スマホのどこに入っていますか?
接続して「Android Device Monitor」を使用しても、スマホ(Devices)選択後にdataフォルダ等は見つかりましたが、
dataフォルダの中が開けませんでした。
DDMSを使用しても、同様にdataフォルダの中が見られませんでした。 すいませんでした、adbで見られるのですね
コマンドライン入力が面倒なだけですが、見ることが出来ました。 >>113
SQLiteOpenHelperのnameにフルパス渡せばそこに作られなかったっけ? >>117
ファイル名だけじゃなくフルパスで書けばいいのですね、ありがとうございます。
SQLite使っててふと思ったのですが、
insert()で追記したら、その後は何もしなくても問題は無いのでしょうか?
テキストファイルの様な、write()したらflush()してclose()してメディアスキャンでPCに認識させる、
といった処理は不要で良いのでしょうか? 今更になってRxJavaを使い出したんだけどdisposableの扱いがよくわからない
いかなる場合でもdisposable.dispose()を忘れたらリークする?
disposeするまで継続的にストリームにデータが流れてくるタイプならdisposeしないとダメってのはわかる
retrofitのようにrest apiを1回呼んで終わりってタイプのものもdisposeしないといけないのかな? >>119
compleさせればdisposeはいらぬ
ver1はしらん >>118
それに該当するのはDBだとcommitかな。
これはDB接続時に autocommit になってたと思った。だから自分でやらなくても良い。
しかしその場合は沢山読み書きすると効率が悪くなって遅くなる。
そういう場合は 接続時に autocommit をoffにしておいて後は自分で適当な所でcommitするように書けば良い。 あ、commitだけでなくDB接続する必要がなくなったら切断するとかも必要だよ。 >>120
いらぬのか
良かった
毎回disposeするの大変だよね いちいち、破棄しなくていい/しなきゃいけないって考えるより、
CompositeDisposalを使う方が遥かに楽だ。 compositにどんどん使い終わったdisposableが溜まっていくの気持ち悪くない? なんか公式の検索が機能してないんだけど
メニューも出なかったりでバグってんのかな?
ChromeとスマホのChromeとIEで試したけどどっちもダメだわ >>121
ありがとうございます。
今のところcommitを使っていないけどDBに書き込めて取り出せるので、autocommitで動いているみたいです。
Androidでは情報が少なかったですが、pythonやperlでも似た感じと考えて良さそうな感じでしょうか。
https://www.antun.net/tips/api/sqlite.html
http://netlog.jpn.org/r271-635/2009/12/sqlite_perl_prepare_commit.html
明示的にcommitしないと、autocommitで保存してくれる ← 今ココ
書き込み速度を上げたい時は、明示的にcommitを書く >>127
DB接続時のオプションでautocommitにするかしないか設定できないかな?
Androidの場合どうなるのか知らないんだけど。
で、そこでautocommitをやらないようにした場合は自分でcommitする必要がある。 Androidの場合は、
beginTransaction()
...
setTransactionSuccessful()
endTransaction()
これしかない。
ジャーナルとかインデックス省略して、INSERT/DELETEを速くするとかはできない。 recyclerViewのadapterをswipeRefreshで更新して一番上に項目を追加するようにしたら、
スクロール位置が更新前のままで、更新後に再度上にスワイプしないと新しい項目が表示されないんですが、
更新時にスクロール位置をトップにするにはどうしたらいいんでしょうか。
ちなみに更新時にadapterを新規に作り直してrecyclerViewにセットする方法だとうまくいきましたが
差分追加の方法でやりたいです。 カメラアプリ作ろうと思ってとりあえずSurfaceView使ってカメラ画面写したいんだけど
いまいちうまくいかない
getSupportedPreviewSizes()ってのを使って解像度取得してそれをsetPreviewSizeで使うやり方でやってるけど
実機実行した時にカメラ禁止マーク+電話のマークみたいな画像が出てくる
Runのログには「E/Camera: Error 1」
どこがダメなんだろう 機種書き忘れてました
京セラのKC-01でandroidバージョンは4.4です >>126
公式ってdeveloper.android.comのこと?
なんかちょい前からおかしいね
一番下の言語設定でEnglishにしたら検索できると思うよ >>133
日本語版は内容が古いままだったりあまりメンテされてない雰囲気、やる気ないんだろうな SQLiteのトランザクション処理について、質問があります。
ググるとサンプルが色々とありますが、
DBをclose()しているサンプルとしていないサンプルがあります。
db.endTransaction()を行った後にclose()するのって実際のところ、どうなのでしょうか?
用途としては1行100Byteほどのデータを1秒に数回、dbと接続してinsertして切断しています。
(メモリに数行溜め込んで一気に書いた方が速くなるとは思いますが。)
// トランザクション開始
db.beginTransaction();
try {
/** Insert等のDB操作 */
db.setTransactionSuccessful();
} catch(Exception e) {
e.printStackTrace();
}
finally {
// トランザクション終了
db.endTransaction();
db.close(); // ←質問:必要?不要?邪魔?
} トランザクションごとにdb.closeする必要はないはずなんだけど
SQLiteでdb.closeをし忘れたまま再度DBを開いちゃったりすると
DBが壊れてしまうのでトランザクション毎にdb.closeするサンプルが
あるのではないかと
あとは意味もわからずそういうサンプルをそのままコピペしてる
サンプルが多いのかもしれない 必要・不要ってより、そのdbの中身のインスタンスはどこで取得してるのよ??
// トランザクション開始
の直前でインスタンス生成して一時的にしか使わないならdb.closeしとけばいいだろうし。
dbのインスタンスを使いまわすならcloseしちゃまずいし。
それ次第だろ。 まぁ、俺の普通は一つのSQLiteDatabaseのインスタンスを使いまわすから、closeはしないで
使いまわすけど。SQLiteDatabaseはスレッドセーフになってるから、ばしばし色んなスレッドから
アクセスして問題ないし。 >>136
> SQLiteでdb.closeをし忘れたまま再度DBを開いちゃったりすると
> DBが壊れてしまう
そんなアホな... http://relog.xii.jp/mt5r/2010/10/android-2.html
このページのコード使ってアンドロイドスタジオで動かしたいんだけど、
javaはアンドロイドスタジオのプロジェクト作成機能で
ProgressCircleって名前で作成したんだけどXMLはどのようにファイルを作ればいいのでしょうか。 付属アプリじゃないカメラアプリならとりあえず正常に動作すると思って参考にしようとしたけど
どうやら付属のカメラアプリじゃないとまともに動かないっぽい
起動した直後に問題発生で終了する
今は付属カメラアプリのappファイル探してるけど見つからなくてつまづいているところ 今時SQLiteを生で書く馬鹿はいない
realmかormaかAACのroom使え デファクトのormはなんなん?
オプソライブラリいっぱいあって困る SQLiteじゃないとダメなら、Room一択。
NoSQLでも構わないなら、ObjectBox。
Realmは、Entityの継承縛りとマイグレーションが糞過ぎる。 Android Studioを3.0.1にアップデートしたら
use of overloaded operator '<<' is ambiguous というエラーが出てビルドが通らなくなりました・・・
エラー箇所:
AppData\Local\Android\sdk\ndk-bundle\sources\third_party\googletest\googletest\include\gtest\gtest-printers.h
解決策をご存知の方教えていただけないでしょうか? アプデ通知にndk使うなら2.3から上げちゃダメと但し書きがあったよ
関係ないが今ハマってるのがmacでjava 8u161 2 最新のパッケージでセットアップすると
色々こけるlinuxは平気なんだけどな AnkoでAnkoLogger使ってみたけど、verbose()とdebug()が反応しないのはなんでなんだ
それ以外はちゃんとログ出るのに >>145
取り敢えBuild->Clean Projectやろう >>146, >>149
レスありがとうございます。145です。
2.3から上げちゃいけないという警告があったのですね。全然気づきませんでした。
他アプリは3.0対応していたため(特にエラーが発生しなかったため)安易に上げてしまいました。
Clean Projectもやってみましたが状況に変化がありませんでした。 >>147
いまセットアップすると最新のSDKツール が落ちてくるんだがデバイスモニターが
java8要求してきやがるのよで入れても動かない古いの落とそうとしてもビルドツ
ールは選べるけどSDKツールは選べないっぽいしで
>146でjava8u162が悪いと書いたけど8u144もダメだったから多分SDKツール
かもね おい、おまえら教えろ
Androidのアプリを作ってみようと思っているんだけど、
最初に作る簡単なアプリってのはどんなのがいい?
Androidの特徴がわかり、かつ難しくないのがいいんだけど。
スキルとかはこんな感じです
・これまでの主な言語や環境 c#、asp.net、JavaScript(JQuery)、SQL(MSSQL)
・Android Studioを使用予定
・kotlinの言語仕様を一通り学んだのでkotlin使用
・HelloWorldはすでにやってみたので次のお題を探している TODOメモか日記帳
プログラミングの初心者じゃないならいきなり作りたいもの作っても良いんじゃないか HelloWorldの次なら電卓かな
Androidの特徴を掴むのなら、GoogleMapとGPSを使って、
自分が行った場所の記録アプリとかでもいいかもしれんが aideというAndroidのアプリをつかってるんですが
標準ライブラリのソースをみる方法ありますか?
スレ違いだったらすみません >>153
ありがとうイイネ
TODOの中身を表示させたり、削除、編集するクラスを作って
リストに入れて保持したりするんかな。わくわくするね
>>154
ありがとう
関数電卓なのは難しいけど、普通の電卓のようなのならいい練習になりそうだね
GPSに関しては実機がないから無理なんだよね
安い1万円以内のAndroid6.0ぐらいのスマホを購入するかなあ APIよりUI(フラグメントは後でいいけど)やらないと始まらんだろ。
今はGPSとかセンサー系もエミュレータでもテストできるけど、
やっぱり使ってて楽しいので実機がいい。 やっぱりいきなり作ってみるより、解説本やネットの情報をみて
そのAPIとかUIとかのを一通り学んだほうがいいのかなあ(´・ω・`) ガチなアプリ作るわけじゃないんだし両方とも作りながら試行錯誤したら良いんじゃない? 本2冊読んでclean-arcを覚えてからコーディングに入ったけど順調
作りながら学習だとコードがめちゃくちゃになってすぐに行き詰まる 他所で何か完成させたことあるなら本読みながらながら制作でいい
初めてなら好きなだけ本読めばいい読んでも出来るようになるとは限らないがな ■ このスレッドは過去ログ倉庫に格納されています