aoma blog

エンジニアの日常とか技術とか

Icons8でアイコンをサクッと作成!日本語版もあるぞ!

アプリ開発においてアイコンは必須。

ですが非デザイナーにとってアイコン作成ってとても難しいですよね。

そんなときはアイコン作成サービスを使いましょう。

今回紹介するのはIcons8です!

先日公開したGmailの再送信アドオンのアイコンもこれで作りました。

aoma23.hatenablog.jp

Icons8の使い方

使い方はとっても簡単。ほしいアイコンを探すだけ。

例として「Gmail」で検索すると多くのメール系アイコンがヒットします。その中から選ぶだけ!
カスタマイズもできて、色味や画像を重ねることもできます。

f:id:aoma23:20190822135527p:plain

選んだアイコンによってオーバーレイできる画像の種類も変わるようです。

日本語版もある

英語が苦手という人に朗報。日本語版サイトもあります。

icons8.jp

個人でも商用利用でも無料で使えます!ただしリンクをお忘れなく!詳しくはランセンスページを確認ください。

お気に入りのアイコンをサクッと作成しましょう!

リブート

再起動って大切ですよね。

動かなくなったとき、再起動すればまた動き出せます。

再起動と言えばmiwaの新曲「リブート」がいい感じですね!

www.youtube.com

相変わらず歌上手いし、今までと違いバンドサウンド&カッコいい歌声&かわいいも少々。

ロングヘアをバッサリ切ってイメチェン。リブートでしょうか。

と思ったらちょっと前からショートにしてたみたいですね。

そんなこんなで私もリブートします。

【Gmail】送信済みメールを編集して再送するアドオン作ったよ!

送信したメールを編集して再送信したいときってありますよね!
昨日送った日報メールを日付だけ書き換えて送りたいとか。

でもGmailには再送機能がない。。。

需要はあるのに実装されない

かなり昔から需要はあります。

海外でも困ってるぽい。

それなのになぜ実装してくれないのかGoogleさん!なぜなんだぜ...

もう作っちゃおうと。

私も再送機能を待ち望んでいる一人でした。いつか実装されるだろうと待ち続けて早10年。ようやく気づきました。これは実装しないなと。。

ということで、今回再送アドオンを作りました!
その名も「Resend for Gmail」です!

github.com

Gmailは「Gmail Add-ons」という専用のアドオンを開発可能です。chromeなどのブラウザ用アドオンではないので注意。

使い方

再送信したいメールを開いて、画面右の「RESEND (CREATE DRAFT)」を押すだけ!
下書きメールが作成されるのであとはよしなに編集して送信してください。

https://aoma23.github.io/resend_for_gmail/demo.gif

インストール方法

デベロッパー用アドオンとしてインストールください。
アドオンを一般公開するにはGCPにアップする必要があったりと大変そうだったのでご容赦ください。m(> <)m

下記サイトを参考にするとわかりやすいです。
Google Apps ScriptでGmailを自動化する(13) Gmailアドオンを作る (1) アドオンの作成からインストールまで | マイナビニュース

ざっくりインストール手順

するとこんな感じで画面右のアドオンにアイコンが追加されます!

f:id:aoma23:20190816193537p:plain

初めて使うときはアクセス承認を聞かれるので承認してください。

さいごに

一応HTMLメールとテキストメールの判定出し分けは実装したのですが、バグや改善点等ありましたらお気軽にプルリクお願いします!!
また、海外の困ってる方向けに英語翻訳、発信等してくれる方もいましたら是非!
また、アドオン一般公開するの簡単だから教えてあげるよっていう方もいましたら是非!

ツイッター、読者登録、はてブもよろしくお願いします!

調整さんプラグイン開発までのプロセスを公開します!

先日、調整さんのデフォルト開始時間を変更するブックマークレットを作りました。

aoma23.hatenablog.jp

便利だと思うので、皆さん使ってみてください。 調整さんの中の人にも褒めていただいた?ので嬉しい限り。

「どうやって作ったの?」といった質問をいただいたので、作るまでの経緯を解説してみたいと思います!

作成までの経緯

なぜ作ろうと思ったか

モチベーションは大事ですよね。

友達と来月どこかで飲みに行こうー!と思って調整さんをつかったときに平日全て候補日にしたんですね。

20:00開始予定だったんですが全部19:00~になっちゃって、開始時間のデフォルトはどうやって変えるんだろうと思ったら、どうやらなさそうだと。

ないなら作っちゃうかと。きっと需要あるだろうと。

みたいな感じです。

chromeのアドオンにするか迷いましたが、お手軽にjsのブックマークレットでいいやーと。

調査フェーズ

調整さんのHTMLソースを見てJS部分を解析してみました。

「19:00」で検索したらそれっぽい箇所がヒットしました!

$("#datepicker").datepicker({
    dateFormat: 'm/d(DD)',
    firstDay: 0,
    yearSuffix: '年',
    showMonthAfterYear: true,
    monthNames: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
    dayNames: ['日', '月', '火', '水', '木', '金', '土'],
    dayNamesMin: ['日', '月', '火', '水', '木', '金', '土'],
    minDate: new Date(),
    maxDate: '+12m',
    hideIfNoPrevNext: true,
    // 日付が選択された時、日付をテキストフィールドへセット
    onSelect: function (dateText, inst) {
        var nowText = $("#kouho").val();

        if (nowText === "") {
            $("#kouho").val(dateText + " 19:00〜");
        }
        else {
            $("#kouho").val(nowText + "\n" + dateText + " 19:00〜");
        }
    }
});

なるほどなるほどdatepickerね。onSelectの部分を書き換えればなんとかなりそう。

ググる

datepicker( 'option', 'onSelect', function (dateText, inst) {

});

onSelectだけ上書きできそう。これはイケそうだ!

実装フェーズ

まず下記のようなコードを作り、

var time_text = " 19:30〜";
$("#datepicker").datepicker( 'option', 'onSelect', function (dateText, inst) {
    var nowText = $("#kouho").val();
    if (nowText === "") {
        $("#kouho").val(dateText + time_text);
    }
    else {
        $("#kouho").val(nowText + "\n" + dateText + time_text);
    }
});

chromeデベロッパーツールを開いてConsoleにコピペして検証してみました。

こんな感じ。

f:id:aoma23:20190816102014p:plain

すると無事書き換わったぞ!!

あとはブラッシュアップするだけ。 即時関数にしてグローバルスコープを汚染しないように。そして調整さんへのリダイレクトを追加してみました。

(() => {
    const url = 'https://chouseisan.com';
    if (location.origin != url) {
        location.href = url;
        return;
    }
    let time_text = prompt("デフォルト開始時間を設定します", "19:30~");
    $("#datepicker").datepicker( 'option', 'onSelect', function (dateText, inst) {
        var nowText = $("#kouho").val();
        if (nowText !== "") {
            nowText += "\n";
        }
        $("#kouho").val(nowText + dateText + ' ' + time_text);
    });
})();

これをワンライナーにして先頭にjavascript:を付与したらブックマークレットの完成です。
GoogleClosure Compilerを使ってワンライナーにすると圧縮もされて便利。

デプロイ?フェーズ

ブックマークレットをブックマークするのって意外とめんどうですよね。
aタグとかにしてブックマークバーにドラッグ&ドロップする方法が一番お手軽そうだったので今回はそれにしてみました。

<a href="{ブックマークレット}" onclick="return false">ブックマーク名</a>

属性値(hrefの値)を"で囲む必要があり、今回スクリプト内でダブルコーテーションを使っていたのでシングルコーテーションに置換しました。
スクリプト内容によってはダブルコーテーションじゃないといけない可能性もあると思うので、その場合はエスケープするなり注意してくださいね。

<a href="javascript:(function(){if('https://chouseisan.com'!=location.origin)location.href='https://chouseisan.com';else{var b=prompt('\u30c7\u30d5\u30a9\u30eb\u30c8\u958b\u59cb\u6642\u9593\u3092\u8a2d\u5b9a\u3057\u307e\u3059','19:30\uff5e');$('#datepicker').datepicker('option','onSelect',function(c,d){var a=$('#kouho').val();''!==a&&(a+='\n');$('#kouho').val(a+c+' '+b)})}})();" onclick="return false">調整さんの開始時間変更</a>

完成ー。メイン記事に設置してるので登録してみてね!

参考にしたサイト

今後やりたいこと

さいごに

不明点等あればお気軽にツイッター等でご質問くださいー。

海外のイケてるエンジニアが使ってるアバター作成サービスはこれだ!

おはこんばんちはaomaです。

GitHubとかのIssue見てるとたまにこんなアイコンの人見かけませんか?

f:id:aoma23:20190816182724p:plain

結構いますよね?そうでもないですか?

外人のつよつよエンジニアはみんなこのアイコンにしてる!気がする。

ぼくもこのアバターにすればつよつよエンジニアになれる!気がする!きっとそうだ!

イケてる外人エンジニアに人気のアイコン?

国内にもいろんなアバター作成サービスがありますが、これは見たことないなー。。

ググっても画像検索してもなかなかヒットせず。。。

諦めるか、、いや気になる!!

そこで思い切ってこのアイコンを設定してる人に直接聞いてみることにしました!

画像検索でヒットしたツイッター民にアタック!

まずはジョンに聞いてみる

f:id:aoma23:20190816184211p:plain

...拙い英語だからか返事はありませんでした。。。

諦めないぞ!マイケルスミス!

f:id:aoma23:20190816184250p:plain

すると、、、

キターーー!
無言でURLだけ貼り付けて教えてくれました!ありがとうマイケル!!

ということで、下記からアバター作れます!「FAMILY GUY YOURSELF」カッコいい!

www.familyguyyourself.com

イケてるエンジニアになりたい人はぜひ!

さいごに

しっかりマイケルにお礼を伝えておきました。

拙い英語だからか返事はない。

GASをGitHubで管理する便利なアドオンの紹介

Google App Script便利ですよねー。

みなさんGASをリポジトリ管理してますか??

自分はGitHubでバージョン管理してます。

Google Apps Script GitHub アシスタント」というchromeアドオンがおすすめ!

chrome.google.com

インストールするとGASの画面上で簡単にリポジトリ作成、コミット、プッシュなどが行えます!

これは便利!おためしあれー。

sheet.newで新規スプレッドシートを開く

電卓代わりにちょっとした計算したいとき、スプレッドシートの計算式使うことあるよねーーー!

ってことで今まではGoogleドライブから新規スプレッドシートを開いてーみたいなことをしてたんですが、最近はブラウザのアドレスバーに「sheet.new」って入力して開くようにしてます。

これGoogleさんがドメインを持っていて提供してくれてるんですねー。

スプレッドシート以外にドキュメントやスライドなども対応されてます。

知らなかった人は是非使ってみてくださいー。地味に便利。