著者アーカイブ asaba

asaba 著者:asaba

【jquery】animate()関数を使うと、ページ読み込みが遅くなる

今回はjavascript、ページ読み込み速度の改善の際に気を付けることを書いていきます。

jqueryでよく使われる関数の中にanimate()関数がありますが、最近ではcssを使ってhiddenとかhoverしたほうが動きがカクつかなくて

スマートなアニメーションを作ることができます。

特にcordovaを使ってスマートフォンで見る際にはかなり遅れて表示されるので、ハイブリッドアプリ開発の際はanimateは

使わないほうがよさそうです・・・!

 


$(<span class="hljs-string">'hoge'</span>).animate({<span class="hljs-attr">opacity</span>:<span class="hljs-number">1</span>});

これではなく

<span class="hljs-selector-tag">hoge</span> {
    width:120px;
    <span class="hljs-attribute">opacity</span>:<span class="hljs-number">1</span>;
}

こんな感じ

animate関数は基本cssの動きを全部網羅しているので柔軟に対応できるのですが、近年ではアクセススピードとかがアプリの強みに

なりつつあるので、遅いアプリを作りたくなければcssをもっと柔軟に使いこなせるようにしましょうということでしょうか。

自分はcssはあまり得意ではないですが、この技法はスマートに使えるようにはしておきたいと思います。

asaba 著者:asaba

【android】Could not resolve all files for configuration ‘:app:debugCompileClasspath’の解消法

タイトルの通りですが、クラスパスがないのでビルドできません的なエラーです。原因は’com.android.tools.build:gradle:●.●.●’の

●●の部分がグレイドルのバージョンと合っていなかったりandroid support libraryをインストールしていなかったりと多岐に渡りますが、

自分の場合はただ一行追加するだけでおとなしくなってくれました。それがこちらです。

 

<pre>repositories {
    google()←これをjcenter()の上に追加するだけ
    jcenter()
}</pre>

 

build.gradleにあるallprojectsスコープとrepositoriesスコープ内にgoogle()を追加してください。

 

android support libraryを使っているならこれを必ず追加しろということだと思います。順番は先頭にしないと警告が出るので

とりあえず一番先頭においておけば間違いはないはず。

自分の場合はこちらで解決しましたが、中にはsdkmanagerのsdktoolをアンインストールして再度インストールしないと消えない

ケースもあったので(スタックオーバーフロー参照)これが参考になるか分からないですが

asaba 著者:asaba

【excel】特定の値のみを削除する方法

今日は、エクセルを使っていてセルに入った値をcountifやsumifを使って表を作ったり、フィルターで抽出したセル群をコピーして新しく

ファイルを作る際に不必要な値を削除する方法についてです。

使用法は以下のサンプルを参照。ちなみにサンプルは静岡県の都市を並べたものです。

まず、リストを全部ドラッグして囲みます。その後にホームタブ右上にある検索と選択というアイコンをクリックして置換を選びます。

 

すると、以下のようなダイアログが出てきます。ここで、消したい値が「浜松市」の場合、検索する文字列に’浜松市’と入力します。

 

 

 

 

置換後の文字列には何も入力しません。もうお分かりだと思いますが、’浜松市’の文字を空白に置き換えてしまおうということです。

ここで全て置換をして○○を置き換えましたとダイアログが表示され対象の文字が消えていれば成功になります。ベリーイージーですね。

 

 

やり方を覚えてしまえばあとは消したい値を入力するだけなので容量の多いデータが相手でも効率的にお手軽に消すことができるので

便利だなと感じました。今更でしょうか・・・?

asaba 著者:asaba

【androidstudio】遅くなったandroid studioの速度を改善する方法

タイトルの通りです。先週まで普通に開発に使っていたandroid studioが突然重くなりました。というかビルドの終わる時間が遅く

なりました。困った時のとりあえずクリーンビルドをしてみても変わらず。開いていた重そうなファイルを全部閉じて再起動しても

のろのろビルドのまま・・・。グレイドルのアップデートに必要なパッケージをたくさんインストールしたからでしょうか。

いずれにしろこのままでは気分が悪いので公式をのぞいたら答えが見つかりました。

どうやらdexというツールを使って変更したソースや再コンパイルの必要があるソースだけを再コンパイルすることで開発中のコンパイル

時間を短縮できるみたいです。といっても難しい処理は必要なくgradle.propertiesファイル内に以下のコードを記述するだけで改善できる

みたいです。

</pre>
<pre class=""><span class="pln">org</span><span class="pun">.</span><span class="pln">gradle</span><span class="pun">.</span><span class="pln">jvmargs </span><span class="pun">=</span> <span class="pun">-</span><span class="typ">Xmx2048m</span></pre>
<pre>

 

自分も試しに入れてみたところ期待した通り、一分くらいかかっていたビルドがいらいらを感じない程度には早くなりました。

(推定半分くらいかな?)早くなったのはいいけど偶にビルドできないのはなんででしょう。んー、これ解決と言えるか微妙なところですね・・・。

使っていて気分が悪いままだったら別の解決法を考えます。

asaba 著者:asaba

【javascript】TypeError: n.map is not a functionを始末する

mapを使って取得したjsonを順に表示させるテクニックはjavascript界隈では常套手段ですが、なんか書き方が多くしかもどのコードで

書いても動作が変わらないので筆者はあまり好きではありません。(reactではforeachより優先順位は上だけどなんででしょう。)

mapを嫌い嫌われている関係なので今回もTypeError: n.map is not a functionで足元をすくわれました。

mapするページに遷移したとたんtoastでTypeError: n.map is not a functionと表示させるのでいらいらが凄まじかったです、はい。

(なぜかandroidStudioも激重になっていたのでそのせいでもある)

 

解決法は、=>の後ろに書いたカッコを消して解決。そんなことなのか・・・。とりあえずここで悪い例と良い例を載せておきます。

 

ダメ↓

</pre>
{prizesList.map((prizes, index) => (

<li key={index}

//ここに取得したjsonを記述します。

</li>

))}
<pre>

 

良い例↓


{prizesList.map((prizes, index) =>
  <li key={index}
    //ここに取得したjsonを記述します。
  </li>
)}

カッコがついていても動いたコードもあったので、全部が正しい訳ではないですがシンプルなmapを書きたい時はカッコを外したほうが

無難な動きをしてくれるみたいです。

asaba 著者:asaba

【windows10】windows10で自分のpcが何bitか調べる方法

プログラミングに使える便利なツールをインストールするときは必ず32bitか64bitか聞かれますよね。多分ほとんどの方が自分のpcが何bit

かなんていちいち覚えていないと思います。windows10では、以下のようにしてbitを調べることができます。

まず、左下の検索ボックでコントローラパネルを検索します。一個しか出てこないのですぐに分かると思います。

 

 

クリックすると、以下のページに飛びます。ここでシステムとセキュリティのリンクをクリックしてください。

 

 

 

詳細ページに移動したらシステムをクリックしてください。(pcのアイコンのようなもの。)

すると、以下のようなページに飛ぶと思います。

 

 

画面を見通すと、システムの項目に64ビットオペレーションシステムと記されていますが、これが自分のpcのbitになります。

 

 

以上で確認は終了です。なんかのツールをインストールしようとしてbitが分からなくなった時はコントロールパネルを除いてみて

ください。

asaba 著者:asaba

【atom】atomでプロジェクト選択バーが消えてしまう不具合?が発生

少し前にatomを主要エディタとして使っていますがここにきてまた調子が悪い?ような気がしてきました。自分は翌日の開発は新しい

気持ちで臨みたいので作業終了時にファイルを全部閉じて変えるのですがそのファイルを全部閉じたら横のプロジェクト欄も消えて

しまい軽くパニックに陥りました。いつもは全部消しても固定されているのに・・・原因はまだよくわかっていません。

とにかくこのままだと使い勝手が悪いので忙しくなる前に(もう忙しい)なんとかして復活させねば・・・。

とりあえずgoogle先生に質問したのですがネットを漁っても同じ症状の人がいないのでかなり落ち込んでいます。どうしよう・・・

最悪アンインストールしますが、プラグインとかまた入れるのがめんどくさいのでそれは避けなければ。

 

↓ 赤で囲んである部分が消失してしまいます。

 

今プラグインを入れ直してみたのですが変わらずでした。ファイルが選べないのでどちゃくそ不便です。以上。

asaba 著者:asaba

【cordova】iosでもサイレントモード検知してくれるプラグインcordova-silent-mode

前回androidでサイレントモードを監視してくれるcordova-plugin-android-volumeを紹介しましたが、iosでも同様のことができる

プラグインを見つけたのでここに記載しておきます。今までcordova公式やnpm公式で必死に探していたのですが、インストールを

拒否されたりリポジトリ自体が空っぽだったりと碌なプラグインがなく散々な目に会いましたがついに理想のプラグインと出会えたという

感じです。使う前はどうせ機能しないんだろうなとかネガティブな感情だだ漏れだったので期待していなかったのですがこちらも

短いコードで仕事してくれたので逆にすみませんという感じでした。では、使い方を載せていきます。

まず、インストールですね。こちらはcordova plugin add cordova-silent-modeだけで簡単にインストールすることができます。

ただサイレントモードを監視させるだけなら次のような記述でオッケーです。

</pre>
window.SilentMode.init();
window.SilentMode.isMuted(
function() {
console.log('サイレントモードが有効時');
},
function() {

console.log('サイレントモードが無効時');
}
);
<pre>

 

サイレントか否かの判定をコールバックで呼び出すので殴り書きしても読めるものになっています。

iosのバージョン対応は今のところはiphone6sと6plusでは正常な動作を確認できました。新型iphoneはどうなんだと思いますがレジュメ

にはどこどこのバージョンから使えなくなるという注意書きはなかったので新しめのosでも対応できそうです。

サイレントモードを監視するプラグインの中でも数少ないまともに動いてくれるプラグインなので皆さんと共有できたらと思っています。

asaba 著者:asaba

【xcode】error:Redefinition,of ‘option’.の対処法

今回は、mac、xcodeの話題になります。

xcodeで動作確認をしている時にプラグインを試運転したくなり、何回もcordova platforms add iosとcordova platforms rm iosを繰り返し

て入れていたのですがその過程で下のようなエラーに遭遇しました。

 


error:Redefinition,of 'option'.

 

原因は、変数をソース内に二度書き込んでいたためです。自分のソースなら話は分かるのですが、なぜかcordovaのプラグインでこの

現象が起きていました。明らかに同じ変数、同じ関数で。プラットフォームを毎回入れ直すごとにこの修正作業をするのは億劫なので

プラグインのバージョンを低くしてしまおうと思ったのですが性能面で大きく変化するのが怖いのでとりあえずは様子見することに

しました。

ですが消す事には何ら影響はないので見かけたら早急につぶしてしまいましょう。

asaba 著者:asaba

【cordova-plugin】音量取得ができるプラグイン・cordova-android-volume-pluginについて

久々にコルドバの話題です。今回は着信音の音量を取得する機能を探していたところ有用そうなプラグインを見つけた時のネタになります。

android限定ですが、簡単なコードで現在の音声を拾ってあれこれできるのでこれは使い道があると感じ早速使ってみました。

androidの音声は三種類(メディア、アラーム、着信音)あり、この中で着信音を取りたかったのですがバリエーションを見るとしっかり

抑えてあったので書いてみました。ajaxのようにコールバックでsuccessとfailに分けて結果を出力するようなコードにすると読みやすく

なりますね。

※サンプルは着信音の音量を返しています。

 

</pre>
window.androidVolume.getNotification((volume) => {
console.log('valumen =>' +volume);
}, (error) => {
console.log('error=>' +error);
});
<pre>

 

この他にも様々なバリエーションがありますが主要機能のgetのみ挙げておきます。

 

</pre>
<span class="pl-c1">window</span>.<span class="pl-smi">androidVolume</span>.<span class="pl-en">getAlarm</span>(success, error);
<pre><span class="pl-c1">window</span>.<span class="pl-smi">androidVolume</span>.<span class="pl-en">getMusic</span>(success, error);</pre>
<pre>

 

他の類似プラグインは音量取得はできるのですがなぜかメディア音量をとってきてしまうので注意が必要です。