SlideShare une entreprise Scribd logo
1  sur  67
プロ生ちゃん
常駐化の提案と
アプリ開発の裏
プログラミング生放送勉強会 第39回@DMM.COMラボ
今日はこんな感じで
いきます。
ゆっくり
していってね
自己紹介 すごく
どうでもいい
公式の勉強会案内の「むらむらさん」
あだ名が
ひどい
すいません、これ私です。
誰得!あだ名ができるまで
あだ名が
ひどい
村田(苗字)
↓
むらた
↓
むらむらむらた
↓
むらむら
 偶然生まれた「むらむらむらた」
 ツボって定着させようとする友人勢
 高校生にはあまりにも酷
 つらい
半年くらい続けば慣れます。
慣れってすごいね!
プロフィール的な
名前 村田
あだ名 むらむら
ID @pmw1415
よく使ってる言語 Java, C/C++
仕事 組み込みソフト開発系(今のところは
2016年 もっとアグレッシブに何かやりたい
きのこたけのこ 中立派
←
最近、ユニティちゃん画像から単色アイコン作って
テンション上がってたりしてました
© Unity Technologies Japan/UCL
慣れても
このあだ名は
ひどいと
思ってる
去年の活動
 [2015/10/31] プロ生勉強会@恵比寿、初LT
 [2015/12/12] プロ生勉強会@名古屋、初名古屋とLT(スライドを爆発させたり)
 [2015/12/18] プロ生ちゃん Advent Calendar 2015参加
 [2015/12/19] プロ生ちゃん Advent Calendar 2015参加(1日ぶり2回目)
 [2015/12/32] マスコットアプリ文化祭にアプリ応募
 [2016/02/13] プロ生勉強会@恵比寿、LT(セッション) ←今ココ!!
大した事
してない
本編
始めます
Androidアプリ作って
マスコットアプリ文化祭
2015
に参加しました。
初めて
アプリ公開
とか
しました
概要
常駐型プロ生ちゃん
いつもニコニコ
あなたのAndroid端末に
常駐するNotification
ばばーん
概要
しょぼそう
(小並感)
 どんなアプリ?
Notificationにプロ生ちゃんが常駐するよ!
 何ができるの?
Notificationにプロ生ちゃんを常駐できるよ!
3ステップでできる
常駐化手順
4!
① アプリをインストール
② アプリ設定画面で表示ON
③ 設定画面終了すると常駐開始
④ ドヤ顔
通知バー下ろすとこんな感じ
いつもの
やつ
地味な機能
複数搭載
_人人人人人人_
> <
> <
 ̄Y^Y^Y^Y^Y^Y ̄
アニメーション
少し表情
変わるだけ
バッテリー低残量で
アイコン変化
テキストも
追加
全体図
ちっちゃい
このへんに
↓プロ生ちゃん
という地味なアプリ
常駐型プロ生ちゃん
2回目
ばばーん
常駐させとくとちょっぴりいいことあるかも
●O検 索常駐 生
DLはPlayストアから
o
アプリの紹介
兼
宣伝
ダイレクト
マーケティング
(違う)
ここまで
【おさらい】この発表、LTじゃない
ショート
セッション
です
と い う わ
け
で
で、
アプリ開発の時の話
あれこれ
ここからは
勉強会
みたいだ
常駐型プロ生ちゃん
の開発で使った技術、
発生した不具合動作と
解決方法
の話
勉強会
みたいだ!
開発環境
 OS: Windows 8.1
 IDE: Android Studio 1.4 Visual
Studioは
使いません
第1部
震えるぞ
ハート!
Notificationの表示制御
と、アニメーション
Notificationの表示制御
 表示情報をNotificationCompat.Builderクラスで設定
 非表示の場合は不要
 NotificationManagerCompatクラスで表示/非表示
表示
Notificationの表示制御
 表示情報をNotificationCompat.Builderクラスで設定
 非表示の場合は不要
 NotificationManagerCompatクラスで表示/非表示
非表示
Notificationの設定項目
(今回使ったやつ抜粋)
メソッド名 内容
setContentTitle() タイトル
setContentText() メッセージ
setSmallIcon() ステータス領域に表示するアイコン。
Android5.0以降だと単色表示に
setLargeIcon() 通知バー下げたときのアイコン
setColor() 通知バー下げた領域でsmallIcon表示したときの背景色
setContentIntent() タッチして表示するIntent(画面情報)
setOngoing() 手動で削除できる? できない? できる?
setAutoCancel() タッチ後に消える? 消えない? 消える?
割と凝った
デザインも
作れる
らしいよ
(よく知らない)
他にもたくさんあります。
詳細はBingでググってください。
旧版との互換性
 Android 3.0.x(APIレベル11)以前はNotificationクラス中のフィールドを
直接設定してた
 Android 3.0.x以降からはNotification.Builderを使う方向に変更
 NotificationCompat.BuilderクラスはAndroid Wear対応のためのクラス
自分も結構
混乱してた
Notificationのアニメーション
 同じIDに対して 表示→スリープ→アイコン変更→表示→スリープ→...
 メインスレッド上だと完了までアプリの動きが止まる
→Service + Threadで解決
けっこう
手間
メ
イ
ン
ス
レ
ッ
ド
アイコン表示用
Service
Thread
① 表示
② スリープ
③ アイコン変更
④ 表示
⑤ スリープ
⑥ アイコン変更
⑦ 表示
⑧ スリープ
:
Notification
Manager
Start
第2部
波紋!
システム通知を受信
【BroadcastReceiver】
BroadcastReceiver概要
 Androidアプリの4大要素
 ってググったら出てきた
 Bingっても出てくる
 Androidでは、システム上の動作状態に関する情報(Intent)をブロード
キャストしてくれる
 受信登録すればシステムアプリ、自作アプリ全てで受信ができる
 受信されるとBroadcastReceiver#onReceive()が呼ばれる
たぶん
よく使う
よ
ブロードキャストされる情報一覧
ACTION_AIRPLANE_MODE_CHANGED ACTION_MANAGE_PACKAGE_STORAGE ACTION_PACKAGE_REMOVED
ACTION_BATTERY_CHANGED ACTION_MEDIA_BAD_REMOVAL ACTION_PACKAGE_REPLACED
ACTION_BATTERY_LOW ACTION_MEDIA_BUTTON ACTION_PACKAGE_RESTARTED
ACTION_BATTERY_OKAY ACTION_MEDIA_CHECKING ACTION_POWER_CONNECTED
ACTION_BOOT_COMPLETED ACTION_MEDIA_EJECT ACTION_POWER_DISCONNECTED
ACTION_CAMERA_BUTTON ACTION_MEDIA_MOUNTED ACTION_PROVIDER_CHANGED
ACTION_CLOSE_SYSTEM_DIALOGS ACTION_MEDIA_NOFS ACTION_REBOOT
ACTION_CONFIGURATION_CHANGED ACTION_MEDIA_REMOVED ACTION_SCREEN_OFF
ACTION_DATE_CHANGED ACTION_MEDIA_SCANNER_FINISHED ACTION_SCREEN_ON
ACTION_DEVICE_STORAGE_LOW ACTION_MEDIA_SCANNER_SCAN_FILE ACTION_SHUTDOWN
ACTION_DEVICE_STORAGE_OK ACTION_MEDIA_SCANNER_STARTED ACTION_TIMEZONE_CHANGED
ACTION_DOCK_EVENT ACTION_MEDIA_SHARED ACTION_TIME_CHANGED
ACTION_EXTERNAL_APPLICATIONS_AVAILABLE ACTION_MEDIA_UNMOUNTABLE ACTION_TIME_TICK
ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE ACTION_MEDIA_UNMOUNTED ACTION_UID_REMOVED
ACTION_GTALK_SERVICE_CONNECTED ACTION_NEW_OUTGOING_CALL ACTION_UMS_CONNECTED
ACTION_GTALK_SERVICE_DISCONNECTED ACTION_PACKAGE_ADDED ACTION_UMS_DISCONNECTED
ACTION_HEADSET_PLUG ACTION_PACKAGE_CHANGED ACTION_USER_PRESENT
ACTION_INPUT_METHOD_CHANGED ACTION_PACKAGE_DATA_CLEARED ACTION_WALLPAPER_CHANGED
ACTION_LOCALE_CHANGED ACTION_PACKAGE_INSTALL
いろいろ
あるよ
今回使ったもの
これだけ
ACTION_AIRPLANE_MODE_CHANGED ACTION_MANAGE_PACKAGE_STORAGE ACTION_PACKAGE_REMOVED
ACTION_BATTERY_CHANGED ACTION_MEDIA_BAD_REMOVAL ACTION_PACKAGE_REPLACED
ACTION_BATTERY_LOW ACTION_MEDIA_BUTTON ACTION_PACKAGE_RESTARTED
ACTION_BATTERY_OKAY ACTION_MEDIA_CHECKING ACTION_POWER_CONNECTED
ACTION_BOOT_COMPLETED ACTION_MEDIA_EJECT ACTION_POWER_DISCONNECTED
ACTION_CAMERA_BUTTON ACTION_MEDIA_MOUNTED ACTION_PROVIDER_CHANGED
ACTION_CLOSE_SYSTEM_DIALOGS ACTION_MEDIA_NOFS ACTION_REBOOT
ACTION_CONFIGURATION_CHANGED ACTION_MEDIA_REMOVED ACTION_SCREEN_OFF
ACTION_DATE_CHANGED ACTION_MEDIA_SCANNER_FINISHED ACTION_SCREEN_ON
ACTION_DEVICE_STORAGE_LOW ACTION_MEDIA_SCANNER_SCAN_FILE ACTION_SHUTDOWN
ACTION_DEVICE_STORAGE_OK ACTION_MEDIA_SCANNER_STARTED ACTION_TIMEZONE_CHANGED
ACTION_DOCK_EVENT ACTION_MEDIA_SHARED ACTION_TIME_CHANGED
ACTION_EXTERNAL_APPLICATIONS_AVAILABLE ACTION_MEDIA_UNMOUNTABLE ACTION_TIME_TICK
ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE ACTION_MEDIA_UNMOUNTED ACTION_UID_REMOVED
ACTION_GTALK_SERVICE_CONNECTED ACTION_NEW_OUTGOING_CALL ACTION_UMS_CONNECTED
ACTION_GTALK_SERVICE_DISCONNECTED ACTION_PACKAGE_ADDED ACTION_UMS_DISCONNECTED
ACTION_HEADSET_PLUG ACTION_PACKAGE_CHANGED ACTION_USER_PRESENT
ACTION_INPUT_METHOD_CHANGED ACTION_PACKAGE_DATA_CLEARED ACTION_WALLPAPER_CHANGED
ACTION_LOCALE_CHANGED ACTION_PACKAGE_INSTALL
今回使ったもの
 ACTION_BOOT_COMPLETED // OS起動完了なう
 ACTION_TIME_TICK // 時刻の分情報、更新
 ACTION_SCREEN_ON // 画面表示
 ACTION_SCREEN_OFF // 画面非表示
 ACTION_BATTERY_LOW // バッテリー低残量状態
 ACTION_BATTERY_OKAY // バッテリー低残量状態じゃなくなった
 ACTION_POWER_CONNECTED // 充電開始
これだけ
BroadcastReceiver登録方法①
AndroidManifest.xmlに登録
 アプリ起動してなくても受信できる
①
BroadcastReceiver登録方法②
Javaコード上で登録
 好きなタイミングで登録が(登録解除も)できる
②
常駐型プロ生ちゃんでは
↓ はい残念
でした
常駐アプリだし、アプリ起動してなくても受信する必要がある
ぜんぶAndroidManifest.xmlで登録すればOK!
と思ってたけどダメでした!!
AndroidManifest.xmlに記述 の図
テンプレ
動く
動かない
動かない
動かなァい!!
動く
動く
動く
公式リファレンスより
まじかー
【ざっくり意訳】
manifestで宣言しても受信できないよ
Context.registerReceiver()でしか登録できないよ
残念だったな!
というわけで
Context.registerReceiver()じゃないと受信できない通知は
設定画面でON/OFFした時に登録/解除することで
受信できるようになりました。
やったぜ
勝った!第2部完!!
逃げちゃ
だめだ
第弐.伍部
バ
グ、発生
ブロードキャスト受信バグ
 端末を2~3時間くらい放置後、アイコンがアニメーションしなくなる、
という事案が発生
 2日連続で起きたから気のせいではない
 気のせいではなかったのです
なんでや!
原因:
Androidめ!!
Androidの
プロセス管理
Androidのプロセス管理(1)
 画面上では1つのアプリだけが表示されるが、過去に起動したアプリのプ
ロセスも基本的にバックグラウンドで生き続けてる
 Androidアプリのコード上でActivity終了してもプロセスは生きてるという罠
 アプリを起動すると、そのプロセスの優先度が1番高くなる
 使わないプロセスはどんどん優先度が低くなる
常駐プロセス
あかり
Twitterなう ブラウザわず けっこう前に
起動したプロセス
・・・・・
←高 優先度 低→
Androidのプロセス管理(2)
 プロセスが増えて空きメモリ量が減ると、ガベージコレクション(GC)が
働いて優先度低プロセスをkill、メモリを解放する。
 これにより、BroadcastReceiverを登録したプロセスが時間経過でkillさ
れる
 アプリの終了処理とかは 呼 ば れ ま せ ん 。Androidめ!
ガベージ
これくしょん
~ガベこれ~
Twitterなう ブラウザわず プロセスェ・・・
・・・
←高 優先度 低→
というわけで
で、
第3部
オラオラ
オラオラ
オラオラプロセス常駐化じゃーい!
常駐するプロセスを用意
① 常駐用Serviceを追加
② 設定画面でBroadcastReceiver登録/解除している部分
→常駐用Serviceの開始/停止に置き換え
③ 常駐用Serviceの開始/停止時にBroadcastReceiver登録/解除
④ 常駐用Serviceは起動時、プロセスが勝手に消されないように設定
常駐プロセス
を作ろう
のコーナー
Serviceクラスのメソッド:
public final void startForeground
(int id, Notification notification)
 プロセスをフォアグラウンドとして扱う
 優先度が低くならない
→メモリが減っても勝手に消されない
 引数(id, notification)は「プロセス常駐なう」を分かるようNotification
表示させる目論見
よくできてる
なー(感心)
Notificationは表示しません
 Notificationにアイコンをセットしなければ表示されない
 idは適当 もう
表示
してるし
第4部 無駄無駄
無駄無駄
無駄無駄
無駄無駄
そうだ、
ソースコード読もう。
あとシステムリソースも
某フォロワーさんより報告
 バッテリー残量低下のアイコンになった後、電源切ってバッテリー交換し
たら「バッテリーが少ないよ!!」のまま
 フラグが切り替わってないらしい
そうだね!
少なく
ないね!!
某フォロワーさん、報告と画像の利用許可あざます!
ACTION_BATTERY_LOW
ACTION_BATTERY_OKAY
 「バッテリー残量値が変化時、閾値を上回った/下回った」タイミングを
通知するもの
 電源OFF~起動の間に残量変わってもシステムは通知しない
 要するにBroadcastReceiverじゃ対処できない領域 仕方ないね
さてどうしよう
 14%だか15%だかでバッテリー残量低下の警告ダイアログが表示され
る
 昔のバージョンは14%だったはず
 固定値使うのはさすがに. . .
 たぶんシステム側で定数かパラメータ持ってるだろうし、できるならそ
れ使いたい
ソースコード読んだら?
Androidは
オープンソースで
SDK Managerから
ソースコード
DLできるんだよ
だってさ
じゃあ読みましょう! しょう!
BatteryService.java
(<sdk>/sources/android-23/com/android/server/BatteryService.java)
 450~452行目:ACTION_BATTERY_LOWのブロードキャスト
 Context.sendBroadcastAsUser()使って送信
 判定はshouldSendBatteryLowLocked()メソッド
 241~255行目:shouldSendBatteryLowLocked()メソッド
 判定の1つ「mBatteryProps.batteryLevel <=
mLowBatteryWarningLevel」
 155~156行目: mLowBatteryWarningLevelの設定
mLowBatteryWarningLevel = mContext.getResources().getInteger(
com.android.internal.R.integer.config_lowBatteryWarningLevel);
ブロード
キャスト
してるとこ
特定
config.xml
(<sdk>/platforms/android-23/data/res/values/config.xml)
 850~851行目
<!-- Display low battery warning when battery level dips to this value -->
<integer name="config_lowBatteryWarningLevel">15</integer>
リソースは
別ディレクトリ
でした
↑
このリソースを自作アプリで読めれば勝ち。
読めました
 Resourcesクラスのメソッド getIdentifier(name, defType, defPackage)
BatteryServiceで取得時のリソース階層:
com.android.internal.R.integer.config_lowBatteryWarningLevel
 取得したリソースは getInteger() で整数値として読み取る 目が
バッテリー情報と合わせて判定
 システムのバッテリー情報(残量、ステータス:充電状態)を取得
 非充電中で、残量が閾値以下なら「バッテリー低残量フラグ」
 システム起動時、設定値が未保存時に手動で判定
目!!
おまけ お゛ま゛け゛
アイコンパターンの追加を検討中
 通常、アニメーション用1~2種類、低残量パターンがあれば画像差
し替えで別パターン追加できる
 今後も興味本位で機能追加できたら良いなとか考えてます
 Notification用アイコンが作れるかが問題
いい感じの
素材が
欲しい
ユニティちゃん
(一部作成済み)
SUSHI
(寿司のアニメーションって
なんだよって話)
イズミちゃん
(素材の関係で線画抽出
が難しい)
Notification表示用に作ったアイコン、
Githubで公開してます
 はてなブログにDL用記事作ろうとしたけど、アイコンが白一色+透過背
景だから見えなくて詰んだ詰んだ
 マスコットアプリ文化祭2015に登録してあります
 MascotMonoIconで検索してみてください
こんなの
まとめ
 マスコットアプリ文化祭をきっかけにアプリ公開とかLTとかいろいろ
やらせて貰いました
 相変わらず発表は残念なグダりっぷりだけどいい経験になってる
 アプリ公開して反応貰えると楽しい
 今回で一区切り着いたけど、これからも地味に何かやっていきたい
大変だけど
有意義な
感じするし
楽しいよ!
以上です。 ありがとう
ございま!

Contenu connexe

Dernier

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 

Dernier (9)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

プロ生ちゃん常駐化の提案とアプリ開発の裏