X



【Electron】ハイブリッドアプリ開発総合【Cordova】 [無断転載禁止]©2ch.net
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ a797-CQvz)
垢版 |
2017/07/02(日) 17:53:17.69ID:jGbRP/XN0
HTML5,CSS3,JavaScriptなどWeb標準技術を活用したアプリ開発についてのスレです。


各種フレームワークの他、webviewの利用、PWA(AMP)、ブラウザ拡張機能など板選びに迷ったらこのスレに書き込んで下さい。
副次的な話題としてビルドツールなど開発環境に関する話も可。


主なフレームワーク
Electron
https://electron.atom.io/
NW.js
https://nwjs.io/
Apache Cordova
https://cordova.apache.org/
PhoneGap
https://phonegap.com/
ReactNative
https://facebook.github.io/react-native/
NativeScript
https://www.nativescript.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0047デフォルトの名無しさん (アウアウウー Sa11-vJpg)
垢版 |
2018/04/09(月) 12:53:29.29ID:jgGTqA40a
ウインドウのalwaysOnTopをトグルする処理をしようと思います
レンダラプロセス中のwindowがBrowserWindowオブジェクトなのかと思って
レンダラプロセスの中で
window.setAlwaysOnTop(true);
とやってみたのですが、エラーになりまりした
windowはBrowserWindowオブジェクトではなかったようです
レンダラプロセスの中で自分自身のBrowserWindowオブジェクトにアクセスするにはどうしたらいいのでしょうか?
0048デフォルトの名無しさん (アウアウウー Sa11-vJpg)
垢版 |
2018/04/10(火) 09:16:38.93ID:i8FTl/rGa
APIドキュメントを見ても、レンダラプロセスから自身の外観を変えることはできないようなので
IPCでメインプロセスを呼ぼうと思ったのですが
メインプロセス側でレンダラプロセスのBrowserWindowオブジェクトを確定するには
どうするのかという問題が出てきました
マルチウインドウのアプリなのでレンダラプロセスが複数あります
メインプロセスが受信するeventのsenderには、webContentsが入っているとドキュメントにあります
このwebContentsは、BrowserWindowのプロパティの一つだそうです
ですがwebContentsには、自身を所有しているBrowserWindowを取得するメソッドがないっぽいです
idプロパティを持っているので、
BrowserWindowオブジェクトのリストをループさせて比較するという方法で見つけることは出来そうですが
こういう方法しかないのでしょうか?
0050デフォルトの名無しさん (アウアウウー Sae7-ycE0)
垢版 |
2018/04/12(木) 15:49:20.83ID:yy2Q2SfTa
electronで新しいBrowserWindowを作る時
若干待たされる感があるのが気になっていたのですが
前もって非表示のスペアウインドウを作っておいて必要なタイミングでshowするようにしたら、
気持ちいい動作になりました
これはelectronに限らず複数ウインドウを使うアプリを作る時には定石なのかもしれませんね
0052デフォルトの名無しさん (アウアウウー Sae7-ycE0)
垢版 |
2018/04/15(日) 06:01:35.77ID:thU6BYbZa
>>47の件ですが
「Electronではじめるアプリ開発」を読んでいたら
remoteモジュールのgetCurrentWindow()を使えば
レンダラプロセスから自身のBrowserWindowオブジェクトを取得出来ると出てきました
remoteモジュールはgetGlobalでメインプロセスのグローバル変数も取得できるという
なかなかすごいモジュールです
0054デフォルトの名無しさん (アウアウウー Sae7-ycE0)
垢版 |
2018/04/16(月) 12:06:03.54ID:LRqAwmmha
>>52の件ですが
メインプロセスの配列をレンダラプロセスからremote.getGlobalして
メインプロセス側でその配列を破壊的に変更すれば
レンダラプロセス側でもその変更が反映するのだろうと思っていたのですが、
どうも反映しないようです
remote.getGlobalで配列は参照渡しできないのでしょうか?
0055デフォルトの名無しさん (アウアウウー Sae7-ycE0)
垢版 |
2018/04/16(月) 13:50:17.49ID:LRqAwmmha
electronで、オブジェクトが(remoteで取得した)リモートオブジェクトかどうかを
コード上から調べる方法はあるのでしょうか?
consoleに出力しても普通のオブジェクトと全く同じに見えます
0056デフォルトの名無しさん (アウアウウー Sae7-ycE0)
垢版 |
2018/04/16(月) 14:49:27.72ID:LRqAwmmha
https://github.com/electron/electron/blob/v0.35.0/atom%2Frenderer%2Fapi%2Flib%2Fremote.coffee

remoteのソースコードがありました
配列とオブジェクトの処理は異なっていて
オブジェクトの場合、メソッド呼び出しやプロパティの読み書きでIPCが呼び出されるが
配列の場合は値渡しになる、という挙動のようです
0057デフォルトの名無しさん (アウアウウー Sa47-9jjH)
垢版 |
2018/04/23(月) 01:34:07.55ID:5qTX9dFna
グローバルショートカットキーの修飾キーとしてWindowsキーを使いたいです
https://github.com/electron/electron/blob/master/docs/api/accelerator.md
ここにWindowsキーはSuperと書くとありますが、
Super+R
みたいに書いても動作しません
Alt+Ctrl+R
のようにSuper以外の書き方ではちゃんと動作しています
なぜでしょうか?
0058デフォルトの名無しさん (アウアウウー Sa89-k37M)
垢版 |
2018/05/15(火) 21:58:20.08ID:m+1IoCMma
開発フレームワークElectronのエクスプロイトでWebとモバイルの人気アプリが危険
https://jp.techcrunch.com/2018/05/15/2018-05-14-exploit-puts-popular-web-and-mobile-apps-at-risk/

これを見て、バージョンアップしておいた方がいいのだろうと思って、
electronのバージョンアップをして
使ってるパッケージもついでにバージョンアップしました
leveldbのパッケージはネイティブモジュールなので、electron-rebuildでリビルドしようとしたのですが

An unhandled error occurred inside electron-rebuild
Could not detect abi for version 2.0.0 and runtime electron.
Updating "node-abi" might help solve this issue if it is a new release of electron

と言われました
ABIとか言われても、何を言っているのか分かりません
どうしたらいいのでしょうか?
0059デフォルトの名無しさん (アウアウウー Sa39-NEzo)
垢版 |
2018/05/19(土) 13:40:43.15ID:1mxoutqaa
>>58の件ですが
検証するためにプレーンなelectronプロジェクトを作ってみて、leveldbをリビルドしたら無問題。
エラーの出るプロジェクトでモジュールの再インストールなどを繰り返しながら原因を探したところ
なんとelectron-rebuildのコマンドヒストリーからいつの間にか引数が一つ消えていたことが原因でした
electronのバージョンアップはまったく関係なかったです
失礼しました
0060デフォルトの名無しさん (ワッチョイ 89fa-9WOx)
垢版 |
2018/05/23(水) 20:01:18.75ID:Au5e7VGg0
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

2BIZV
0061デフォルトの名無しさん (ワッチョイ a7fa-i/RF)
垢版 |
2018/07/05(木) 01:39:12.11ID:RfoszcD20
7UF
0063デフォルトの名無しさん (ササクッテロ Sp71-7QGX)
垢版 |
2018/09/24(月) 12:43:07.12ID:Sg+JF5S4p
user32.dllとか winapi呼び出せますか
0065デフォルトの名無しさん (ワッチョイ c19f-U9gT)
垢版 |
2018/09/26(水) 08:23:48.51ID:99qoX1Hj0
>特定のサイトを便利に使うための専用ブラウザ
2ちゃんの専ブラみたいので他サイトの奴?

発想は良さそうな気がするけど
セキュリティで引っかかるのも分かる
0067デフォルトの名無しさん (アウアウエー Sab2-S9dY)
垢版 |
2018/11/18(日) 09:16:25.09ID:GZZkLAn9a
Objective-Cはネイティブコードじゃないよな。
iOSに特化したコーディング言語何で無理に100ペリカ。
0068デフォルトの名無しさん (ササクッテロレ Spa3-/ai8)
垢版 |
2018/12/18(火) 12:58:01.95ID:g7EhRgU5p
だれかquasar frameworkという奴を使ってみて
0069デフォルトの名無しさん (ワッチョイ 0a7c-S6R4)
垢版 |
2018/12/18(火) 16:10:50.57ID:G1V4hdx+0
Chroniumは、普通のJavaScriptでは使えない「同期wait処理」が行える
ようになっていることも特徴の1つかも知れない。
この機能により、「Modal」なDialogが作れる。
よく知らないが、ライバルのCordovaはそれが出来ないかもしれない。
ここで言ってる「同期wait処理」とは、sleep(1000);とすると、
単純に、1000(ms)待って戻ってこないという普通の言語では昔から
当たり前にあったような機能のこと。

JavaScriptではこのような単純な「待機処理」が出来ないらしく、。
待機したい場合は、大体、以下の2種類の方法しか使えないらいい:

1. 以後の処理を関数に分けて、タイマーイベントのコールバック関数として指定する。
  しかしこれだと、for 文の中で sleep したい場合などは、難しい気がする。

2. async, await を使う。しかし、これだと、async 修飾された関数を呼び出した側には
  にはすぐに帰ってくるので、ちゃんと wait したことにはならない。
0070デフォルトの名無しさん (JP 0H27-pqTg)
垢版 |
2019/03/26(火) 11:58:33.97ID:6Oo99dT5H
electronを最近始めたんだけど
コレ読んどけ的ないい本ないかしら?
0072デフォルトの名無しさん (ワッチョイ 0666-VfNx)
垢版 |
2019/03/27(水) 06:49:24.76ID:Yh6d3H9u0
>>71
macでやってる人が多いんだけど
macじゃなきゃ安定しないの?

ubuntuでwinのインストーラー作ってみたけど起動しない(´・ω・`)
0075デフォルトの名無しさん (ワッチョイ 9f61-Syny)
垢版 |
2019/04/03(水) 09:52:02.05ID:5D4USHSn0
>>72
Electronを使いたがるMacユーザーが多そうに見える原因として考えられるもの:

1. Macは、東大が、学生に「標準パソコン」として指定してる。
 東大の学生は優秀なのでQiitaなどに沢山の技術的な記事が書かれる。
2. Macユーザーにとっては、マルチプラットフォーム開発が重要となる。
0076デフォルトの名無しさん (JP 0H8f-eYI3)
垢版 |
2019/04/03(水) 12:25:56.27ID:6L845/guH
東大生はあんな頭悪いqiita書かないよ多分。。。
0077デフォルトの名無しさん (ワッチョイ 0fb3-9gjM)
垢版 |
2019/04/03(水) 16:29:12.11ID:G5eBaxdY0
Windowsはどんなバカでも使えるようにレガシーな機能もずっと保守し続けてる
そのせいで最新の機能が制約されてたり、MACに比べたらいろいろと劣ってる
消費者ならWin、働くためのツールならMacだよ
0078デフォルトの名無しさん (ワッチョイ ef66-068C)
垢版 |
2019/04/03(水) 18:39:19.31ID:JogZOakl0
つまり
electron開発ならmacを買え、と
0082デフォルトの名無しさん (ササクッテロラ Sp91-Utp6)
垢版 |
2019/04/05(金) 11:23:06.13ID:jCC1oji/p
テスト用にはどの環境もあったほうがいい
マルチプラットフォームだけど表示や挙動がそれぞれ少しずつ違うこともあるから。

ただWindowsだとnpm install -gでPATHが通らなかったりcross-env使わないと環境変数設定できなかったりするので開発はubuntuやMacの方がやりやすかったりする

んでMac使うことで開発モチベーション上がるならMac使えばいいだけ
0084デフォルトの名無しさん (JP 0H8d-muAH)
垢版 |
2019/04/05(金) 12:18:33.52ID:t0BeIAhzH
>>82
サンクス
0087デフォルトの名無しさん (ササクッテロ Sp91-Utp6)
垢版 |
2019/04/05(金) 16:47:33.10ID:4MyzRGYfp
npxは知ってるがそれで対処できない例外として
例えばnpmでyarnを入れるチュートリアルを見た初心者が躓く

ネットに書いてるコマンド通りに実行しても、うまくいかない可能性がwindowsの方ではやや大きくなる
0089デフォルトの名無しさん (アウアウクー MM51-gZRC)
垢版 |
2019/04/05(金) 20:47:15.62ID:+AwbeXijM
一番安いmacでいいじゃん
0091デフォルトの名無しさん (ワッチョイ 027c-Tnac)
垢版 |
2019/04/06(土) 02:40:41.30ID:RnWMowmi0
>>89
・PC/ATの場合、自作機にすれば、物凄く安く付く。買い直さずに好きな部分だけ
 変えていけばいいので、特に箱(筐体)はいつまでも同じものが使える。電源も。
・一般人の大部分が Windows使ってるので、一般向けの何かを作って食って
 いくためには Windowsでないととても不利になる。
0092デフォルトの名無しさん (ワッチョイ b102-btfB)
垢版 |
2019/04/15(月) 18:10:55.77ID:RtXcNLDT0
外部からのデータ取得ってmainプロセスrendererプロセスどっちでやるべきなの?
javascript勉強中でとりあえず題材として2ch専ブラ作ってるから板やスレの一覧とかなんだけど
main側のnetモジュールとかにお願いするのかfetchとかでrenderer側で完結させるべきなのか
それぞれの使いどころとかも知りたい
0093デフォルトの名無しさん (JP 0H4d-83pk)
垢版 |
2019/04/15(月) 18:14:43.51ID:gVz3O2O7H
mainプロセスじゃん?
0096デフォルトの名無しさん (JP 0H4d-83pk)
垢版 |
2019/04/16(火) 12:36:29.98ID:otCO5u4tH
>>94
electronスレでなぜそんな告白?
0099デフォルトの名無しさん (ワッチョイ b102-btfB)
垢版 |
2019/04/17(水) 00:08:06.68ID:gfiH5yN40
まじかめんどくさそう
こういうのどういう風に書いたらいいのか
ipcMainとipcRendererでイベント管理すんの?
あと参考になりそうなossプロジェクトあったら教えてくださいな
0100デフォルトの名無しさん (ササクッテロラ Sp79-PPAG)
垢版 |
2019/04/18(木) 20:39:47.87ID:+t7q6d4+p
レンダラー側でも取得はできるけど
キャッシュの管理はメインでやる必要があるから
メインでデータ取得してレンダラーに渡すほうが使い分けがはっきりしていいかなと思う

ipcイベント管理がちょっと複雑になるけど
同期通信はipcRenderer.sendSync()で書ける
0104デフォルトの名無しさん (ワッチョイ f666-PIYw)
垢版 |
2019/04/19(金) 06:51:27.15ID:LywyuMPD0
(´・∀・`)ヘー
0105デフォルトの名無しさん (ワッチョイ 23da-86aj)
垢版 |
2019/05/04(土) 07:14:21.16ID:1PVnGwcJ0
electronの技術を使ってデスクトップのアプリケーションを開発するなら、
ユニークで、かなりの高品質なプログラムでないと全く割に合わない。

https://boostnote.io/
electronベースのBoostnootをダウンロードしてみた。
ダウンロードしたファイルをダブルクリックしたら、インストールに時間がかかる。

C:\Users\各自のユーザ名\AppData\Local\boostのフォルダにインストールされて、
383 MBの容量があった。

ブラウザソフト並みの大容量だ。小物のソフトでも似たようなものだろう。

Boostnootは優秀なプログラムだ。
0107デフォルトの名無しさん (ワッチョイ 4e66-fbFq)
垢版 |
2019/05/05(日) 06:48:37.59ID:YqJW7ihs0
そう?
気にしなきゃいいんじゃない?
0108デフォルトの名無しさん (ワッチョイ 9be3-TuO+)
垢版 |
2019/05/05(日) 10:29:46.56ID:X3l2jk0o0
どうせ馬鹿にされるだろうけど、おいらの環境だと、100MBのファイルの
Download に20分〜40分くらいかかることがある。

どうせ金が無いのは、実力がない馬鹿だから、という解釈で自己責任で
終わってしまうんだろうがね。アメリカ人はだから嫌われる。
0109デフォルトの名無しさん (ワッチョイ 4e66-fbFq)
垢版 |
2019/05/05(日) 21:06:11.42ID:YqJW7ihs0
特殊環境で活きるプラットフォームではないね
0114デフォルトの名無しさん (ワッチョイ 7fdb-9rwV)
垢版 |
2020/01/24(金) 18:57:29.35ID:/rNFQ9J50
UNITYはjavascriptが使えなくなって悲しい。
JSにも高性能なゲーム開発環境ソフトがあればいいのに。

あと、Electronはメジャーになりますでしょうか?
0115デフォルトの名無しさん (ワッチョイ 0747-nGws)
垢版 |
2020/01/27(月) 11:58:59.83ID:XKVa1LXL0
naru
0121デフォルトの名無しさん (ワッチョイ 4e66-ZCJJ)
垢版 |
2020/04/11(土) 07:07:23.27ID:XsVmMwa50
adobe phonegap desktopでを起動すると
プロジェクト一覧がずっとクルクル読み込みしてて終わらないんだけど対策知ってる人いますか?
再インストールでも直らない...
0125デフォルトの名無しさん (ワッチョイ 9b61-ZCJJ)
垢版 |
2020/04/12(日) 13:09:57.72ID:FuTYVCGx0
>>124
C++98 と Standard C は最低限使える C++ の独自拡張言語です。
WasmやJavaのJNIが、C++ソースから簡単に記述できる他、言語自体にも、
さまざまな拡張が施されており、リンクリストなどもC++より簡単に使用できます。
アイデアの流出を防ぐため、詳細は明かせません。
0130デフォルトの名無しさん (ワッチョイ 9edb-Wiu6)
垢版 |
2020/07/07(火) 22:06:05.81ID:sdJNWLdX0
エレクトロンアプリはリナックス上でも動きますか?

今後は高速に動くようになりますでしょうか?
0131デフォルトの名無しさん (ワッチョイ ed61-ZBJp)
垢版 |
2020/07/08(水) 20:45:39.91ID:A43tmfkG0
>>130
>エレクトロンアプリはリナックス上でも動きますか?
Electronは、Linuxでも動くとされている。

>今後は高速に動くようになりますでしょうか?
起動速度に関しては、ブラウザの起動がいつまで立っても速くならないのと同様に
ほとんど高速にはならない可能性がとても高い。
起動後の速度は、Wasmを使えば、いまでもロジック部分は、Wasmを使えば速くなるが、
canvasなどの描画部分が2Dに関しては遅い。3Dに関してはWebGLを使えば、
そのブラウザのWebGLが対応したGPUであれば、nativeデスクトップと理論上、余り速度差が
無いと考えられる。
ただし、Electronとほぼ同じエンジンのChromeのWebGLは、一部のIntel HD GraphicsのGPUへ対応して無い。
0140デフォルトの名無しさん (ワッチョイ bf02-H37g)
垢版 |
2020/12/10(木) 11:01:42.14ID:UMbpThBh0
ずーっと Eclipse の JFace とか SWT とかのクソ古いコードをいじくり倒してたけど、そろそろ限界

インテリセンスつきの高機能エディタ+アルファのデスクトップアプリ(IDE的な何か)を作ろうと思ったら、
現時点での最善策って Electron になる?

今まで見た中で、VS Code が一番サクサクで、画面綺麗で快適だったから
他にグッドオルターナティブあります?
レスを投稿する


ニューススポーツなんでも実況