IT |
MOONGIFT |
Eva.js - Web向けのJavaScript製ゲームエンジン |
http://feedproxy.google.com/~r/moongift/~3/vcnVTYnyUVI/
|
EvajsWeb向けのJavaScript製ゲームエンジンゲーム開発を行う際に一から作ることは多くありません。 |
2021-06-03 21:00:00 |
AWS |
lambdaタグが付けられた新着投稿 - Qiita |
Slack app + AWS Lambda + API Gateway でつまづいた話 |
https://qiita.com/A_SAK/items/a71cdcae9593041e9a58
|
そこで先輩諸兄の記事を参考、もといコピペしてとりあえず動くものを手元に置いて学習していこうと思ったのですが、コピペすらままならない残念なことになり暫く頭を抱えながらあぁでもないこうでもないと試行錯誤して、時間ほどでコピペに成功しました。 |
2021-06-03 20:45:47 |
AWS |
lambdaタグが付けられた新着投稿 - Qiita |
CloudWatchカスタムメトリクスに任意の値を登録してグラフで監視する |
https://qiita.com/KantaHasegawa/items/3452543c7966bd56bd71
|
CloudWatchカスタムメトリクスに任意の値を登録してグラフで監視する概要CoudWatchカスタムメトリクスって知ってますか通常のCloudWatchメトリクスは使ったことがある人が多いと思いますがカスタムメトリクスはそうでもないかもしれません通常のメトリクスがAWSが用意したリソースしか監視できないのに対し、CloudWatchカスタムメトリクスは何でも監視してグラフ化出来る優れものですどうやって監視するか監視といってもカスタムメトリクスは変動する値を継続的に読み込んでくれるわけではありませんCLIやSDK等を使って監視したい値をその都度メトリクスに送信してグラフを作成するわけです今回はAWSCLIを使用する方法とLambdaを使用する方法を紹介しますAWSCLIを使うまずCLIを使える環境を用意しましょう私はローカルに導入するのが面倒だったのでECインスタンスを立てましたアクセスキーの作成認証情報にアクセスキーが必要なので作成しておきましょうIAMコンソール→ユーザー→認証情報→アクセスキーの作成ボタンをクリックですIDが二つ表示されますのでメモしといてくださいCLIのセットアップSSHで接続したらawsconfigureコマンドで簡単に設定しちゃいましょうawsconfigureprofileproduserAWSAccessKeyIDNoneさっきメモしたやつAWSSecretAccessKeyNoneさっきメモしたやつDefaultregionnameNoneapnortheastDefaultoutputformatNonejsonこれでawsコマンドがちゃんと使えるようになりましたカスタムメトリクスを登録するAWSCLIのセットアップが終わったところで早速カスタムメトリクスを登録してみましょう次のコマンドを叩いてくださいawscloudwatchputmetricdatanamespaceCustomMetricsmetricnameTestdimensionsCLIRandomNumvalueなんだかオプションがたくさん並んでいますが実は簡単ですnamespacemetricnamedementionsは全て識別子なので好きな名前を付けちゃってください大事なのはvalueだけです。 |
2021-06-03 20:17:52 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
Ubuntuでpytorch環境を構築してMNISTを動かす |
https://qiita.com/it_tsumugi/items/b60a61366c686b75a5c1
|
コピーして実行するもrequestsパッケージが足りないと言われたのでpipenvでインストール。 |
2021-06-03 20:54:45 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
【Python Threading】time.sleepが邪魔してスレッドを終了出来ない方へ |
https://qiita.com/million-sudo/items/1055a3763262d5ca8382
|
【PythonThreading】timesleepが邪魔してスレッドを終了出来ない方へthreadingはフラグ等をチェックせず外部から強制終了させるといったことが出来ないらしいので、ストップフラグを関数に持たせ正常に終了させてあげる必要がありますですがtimesleepが文中に存在していると指定した時間が経過するまで次のステップに移行する事が出来ません。 |
2021-06-03 20:46:07 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
Seabornの箱ひげ図を都道府県ごとに表示したかったので詳しい人に聞いた話。 |
https://qiita.com/Sicut_study/items/18eb62ac5e7ee9b9868b
|
今回私が行いたいと思っていた可視化は、以下のDataFrameに対して、都道府県ごとにx建物の構造、y取引価格で箱ひげ図を描画することです。 |
2021-06-03 20:29:04 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
「【今年の1問】 2021年開成中-三角すいの体積」を参考にWolframAlphaとonline sympyとFreeCAD でやってみた。 |
https://qiita.com/mrrclb48z/items/159ea13c0fb80b3a8f0d
|
「【今年の問】年開成中三角すいの体積」を参考にWolframAlphaとonlinesympyとFreeCADでやってみた。 |
2021-06-03 20:24:21 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
[ビギナー向け]TouchDesignerとYoutubeLiveを連携させてコメント取ってきちゃうよ vol.3 |
https://qiita.com/miwa_maroon/items/3a226c83b4fe9462fb7d
|
ビギナー向けTouchDesignerとYoutubeLiveを連携させてコメント取ってきちゃうよvol最終回ついにvolとvolを終えて、最後のビジュアル化していくところを解説してゆく今回も動画の解説なので、ぜひまずは下の動画から見てくれよなポイント解説とりあえず最終ゴールがどんな感じになるのかどんこんなんですね。 |
2021-06-03 20:15:02 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
観測地点と観測値から局所的最大値を検出するには? |
https://teratail.com/questions/342001?rss=all
|
②nbsp各点に対して最近傍点N個を抽出する。 |
2021-06-03 20:58:24 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
Thymeleafで改行を表示するとき、CSSを使う方法の採用例が少ないのは何故でしょうか? |
https://teratail.com/questions/342000?rss=all
|
下部にサンプルコードを書いておきますしかし、その方法の採用例が無かったため、「何か問題があるのでは」と思いましたが、私の知識では分かりませんでした。 |
2021-06-03 20:57:20 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
document.createElement('button')のhref動的生成 |
https://teratail.com/questions/341999?rss=all
|
documentcreateElementxbuttonxのhref動的生成前提・実現したいこと以下のHTMLJavascriptで、ボタンを自動生成して、各ボタンに別々のURLを付加するプログラムを作成しています。 |
2021-06-03 20:45:53 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
python pyファイルの合成でエラー |
https://teratail.com/questions/341998?rss=all
|
pythonpyファイルの合成でエラーpythonの初心者です。 |
2021-06-03 20:42:43 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
数値配列を文字配列に直す。 |
https://teratail.com/questions/341997?rss=all
|
数値配列を文字配列に直す。 |
2021-06-03 20:20:06 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
ファイル内のタブ文字からスペースへの変換方法について |
https://teratail.com/questions/341996?rss=all
|
複数 |
2021-06-03 20:18:54 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
Discord.pyで翻訳機能を追加したい |
https://teratail.com/questions/341995?rss=all
|
Discordpyで翻訳機能を追加したい前提・実現したいことDiscordpyでBOTに韓国語nbspornbsp日本語英語に翻訳する機能を追加しようと試みていますまずmainpyでコマンドを受け付けて、その際に引数として原文をTranslatepyに渡して、翻訳されたものをmainpyで出力させる感じです。 |
2021-06-03 20:18:01 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
p内の一致する文字列を<span>で囲みたい。 |
https://teratail.com/questions/341994?rss=all
|
ターゲットエリアのpに振ってある番号を出力される検索結果にも反映するために、結果のpnbspの最初の字を抜き出し、そのうちの数字だけ取り出すことはできた。 |
2021-06-03 20:11:38 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
コントローラーをDBモデルクラスに依存させないテストコーディング設計 |
https://teratail.com/questions/341993?rss=all
|
コントローラーをDBモデルクラスに依存させないテストコーディング設計Laravelで自販機アプリを作っています。 |
2021-06-03 20:07:43 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
unity Texture2Dを回転させたい |
https://teratail.com/questions/341992?rss=all
|
textured |
2021-06-03 20:03:58 |
Ruby |
Rubyタグが付けられた新着投稿 - Qiita |
docker devise導入 |
https://qiita.com/marixtusimo/items/7fde03a60a6cc5321a3b
|
dockerdevise導入Gemfileに、deviseを追加後下記を実施。 |
2021-06-03 21:00:17 |
Ruby |
Rubyタグが付けられた新着投稿 - Qiita |
Docker Rails 開発環境の構築 |
https://qiita.com/marixtusimo/items/2d77b830cb854d32fa4c
|
|
2021-06-03 20:59:30 |
Ruby |
Rubyタグが付けられた新着投稿 - Qiita |
docker データベースの確認方法 |
https://qiita.com/marixtusimo/items/c6fad84381d305e53ec2
|
dockerデータベースの確認方法dockerpsコマンドでMySQLのコンテナを確認dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMEScdadtestapprailstesttestint…AboutaminuteagoUpAboutaminutetcptcptestapprunceeaebfaeabmysqldockerentrypoints…daysagoUphoursgttcptcptestdbMySQLコンテナに接続dockerexecitMySQLのコンテナ名bash今回の場合は「dockerexecittestdbbash」となります。 |
2021-06-03 20:56:55 |
Ruby |
Rubyタグが付けられた新着投稿 - Qiita |
[Ruby]配列の要素を結合して一つの文字列にするjoinメソッドについて |
https://qiita.com/Jackson123/items/3ad8cfa1e7012da7c43d
|
Ruby配列の要素を結合して一つの文字列にするjoinメソッドについてはじめにjoinメソッドについて学習したのでメモとして残しておきます。 |
2021-06-03 20:34:00 |
Linux |
Ubuntuタグが付けられた新着投稿 - Qiita |
Ubuntuでpytorch環境を構築してMNISTを動かす |
https://qiita.com/it_tsumugi/items/b60a61366c686b75a5c1
|
コピーして実行するもrequestsパッケージが足りないと言われたのでpipenvでインストール。 |
2021-06-03 20:54:45 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
AWS EC2 なんとなく初見で使ってみた(やった事のまとめ) |
https://qiita.com/pong109/items/3ee98e5576491d7f18c5
|
雑記やったこと①ECについてAWSのクラウドコンピューティングサービスか月は無料で使えるただし、OSイメージやCPUやメモリのリソースなどは無料枠の制限がある→OSは馴染みのあるRHELを選択セキュリティグループ設定→インバウンド設定sshとhttpのみとりあえずコンテンツのパーミッションを設定するまでは接続元をマイIPのみに絞るssh接続は秘密鍵認証インスタンス作成時にダウンロードする。 |
2021-06-03 20:51:26 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
CloudWatchカスタムメトリクスに任意の値を登録してグラフで監視する |
https://qiita.com/KantaHasegawa/items/3452543c7966bd56bd71
|
CloudWatchカスタムメトリクスに任意の値を登録してグラフで監視する概要CoudWatchカスタムメトリクスって知ってますか通常のCloudWatchメトリクスは使ったことがある人が多いと思いますがカスタムメトリクスはそうでもないかもしれません通常のメトリクスがAWSが用意したリソースしか監視できないのに対し、CloudWatchカスタムメトリクスは何でも監視してグラフ化出来る優れものですどうやって監視するか監視といってもカスタムメトリクスは変動する値を継続的に読み込んでくれるわけではありませんCLIやSDK等を使って監視したい値をその都度メトリクスに送信してグラフを作成するわけです今回はAWSCLIを使用する方法とLambdaを使用する方法を紹介しますAWSCLIを使うまずCLIを使える環境を用意しましょう私はローカルに導入するのが面倒だったのでECインスタンスを立てましたアクセスキーの作成認証情報にアクセスキーが必要なので作成しておきましょうIAMコンソール→ユーザー→認証情報→アクセスキーの作成ボタンをクリックですIDが二つ表示されますのでメモしといてくださいCLIのセットアップSSHで接続したらawsconfigureコマンドで簡単に設定しちゃいましょうawsconfigureprofileproduserAWSAccessKeyIDNoneさっきメモしたやつAWSSecretAccessKeyNoneさっきメモしたやつDefaultregionnameNoneapnortheastDefaultoutputformatNonejsonこれでawsコマンドがちゃんと使えるようになりましたカスタムメトリクスを登録するAWSCLIのセットアップが終わったところで早速カスタムメトリクスを登録してみましょう次のコマンドを叩いてくださいawscloudwatchputmetricdatanamespaceCustomMetricsmetricnameTestdimensionsCLIRandomNumvalueなんだかオプションがたくさん並んでいますが実は簡単ですnamespacemetricnamedementionsは全て識別子なので好きな名前を付けちゃってください大事なのはvalueだけです。 |
2021-06-03 20:17:52 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
docker devise導入 |
https://qiita.com/marixtusimo/items/7fde03a60a6cc5321a3b
|
dockerdevise導入Gemfileに、deviseを追加後下記を実施。 |
2021-06-03 21:00:17 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
Docker Rails 開発環境の構築 |
https://qiita.com/marixtusimo/items/2d77b830cb854d32fa4c
|
|
2021-06-03 20:59:30 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
docker データベースの確認方法 |
https://qiita.com/marixtusimo/items/c6fad84381d305e53ec2
|
dockerデータベースの確認方法dockerpsコマンドでMySQLのコンテナを確認dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMEScdadtestapprailstesttestint…AboutaminuteagoUpAboutaminutetcptcptestapprunceeaebfaeabmysqldockerentrypoints…daysagoUphoursgttcptcptestdbMySQLコンテナに接続dockerexecitMySQLのコンテナ名bash今回の場合は「dockerexecittestdbbash」となります。 |
2021-06-03 20:56:55 |
技術ブログ |
Developers.IO |
【小ネタ】AWS CDKでKinesis Video Streamsを利用できなかった話 |
https://dev.classmethod.jp/articles/cdk-not-available-kvs/
|
awscdk |
2021-06-03 11:20:40 |
海外TECH |
DEV Community |
Building personal blog with Next.js |
https://dev.to/pavel_polivka/building-personal-blog-with-next-js-2d0i
|
Building personal blog with Next jsRecently I was trying to figure out what my page should look like Should it have a blog Should I use some of the popular blogging platforms I tried everything I liked Hashnode as it offers great tools support for custom domains and other cool features But in the end I was not happy with the result I need more customizations I need more freedom I tried building it on my own with Spring Boot and Hotwire I like this stack and agree with the philosophy of Hotwire Unfortunately to do this in the scope I would like it would take a lot of time and as a father I do not have that much time on my hands I know that Next JS is pretty popular and for some work reasons I was looking into it I came across their how to start tutorial and in the scope of this tutorial took me about hours you will build a skeleton blog I was surprised how easy and fast it was Then I decided I will take this code and finish the job In the scope of few evenings I had the new version of my site built and deployed to production TutorialI never saw a tutorial that is this polished It was a joy to use and I was feeling like I am moving ahead with the speed of light The tutorial will go over the most important parts of creating a basic blog You do not need to be that familiar with React to get the concepts You just need basic knowledge of JavaScript I would recommend everybody go through that tutorial even if only to see how to make proper tutorials StylingI am not good with CSS I consider it one of my weaknesses It always seems like there is tons of way to do the one thing you need it s never clear and it s magic to me I was hearing tons of good vibes about TailwindCSS so I decided to try that You know since I am on this hype wave of trying new stuff There I was not that lucky It seems horrible It just takes all the horrible parts of CSS and moves to a different level There is no good tutorial It seems like a complete mess Maybe I was using it wrong but it seemed I would need to write tons of custom CSS anyway I decided to go the easiest way and just do the whole thing in pure CSS No frameworks no nothing In the end I am quite happy with the result but it s a perfect CSS code I would say it s CSS spaghetti Other functionalityFor now I decided to add few features that are not covered by the tutorial One is the Contact Me form I found a great tutorial With it was easy to do One small note here I spent way too much time trying to figure out why the API response was not submitted Instead of res status you need to do res status end Second one is code highlting in the blog posts For that I decided to Prism js library Here is a code snippet that enables it for you const prism require prismjs require prismjs components prism java require prismjs components prism typescript add more if you needuseEffect gt if typeof window undefined prism highlightAll Vercel hostingThe biggest positive surprise for me was the Vercel hosting It s part of the tutorial as well and it s super easy and super intuitive You just give them your git repo they will do the rest of you Your API endpoints are deployed as serverless functions everything that should be served from CDN is automatically served from CDN Adding a custom domain was just a few clicks away It works like magic SummaryI am sold on Next JS If I would be starting my startup I would go for it It s super easy and yet very powerful I would host on Vercel For CSS I would probably go for Bootstrap and it still seems the easiest one to use for me |
2021-06-03 11:48:03 |
海外TECH |
DEV Community |
EA’s Deprecated GAMES LIST |
https://dev.to/allenaj/ea-s-deprecated-games-list-3mmb
|
EA s Deprecated GAMES LISTElectronic Arts Inc is an American video game company headquartered in Redwood City California It is the second largest gaming company in the Americas and Europe by revenue and market capitalization after Activision Blizzard and ahead of Take Two Interactive and Ubisoft as of March EA s Deprecated GAMES LISTThe Sims Social was a Facebook addition to the Sims series of video games It was announced during the Electronic Entertainment Expo press conference As with the original Sims games The Sims Social lets the user create their own customizable character In this version however the player uses their character to interact with those of their Facebook friends The characters can develop likes or dislikes for other Sims creating relationships that can be publicized on the user s Facebook page Wild Ones Most of you have probably heard of Facebook Myspaceand Google Well you might have also heard that Facebook and Myspace have multiplayer games Wild ones was one of them Wild Ones was a multiplayer turn based shooting game which was based on Worms You will start the game with a dog and as you continue throughout the game you have the option to get a rabbit panda monkey cat armadillo chameleon bat hamster and many other Pets There were also the maps to play on and a bunch of weapons to use Pet Society was a social network game developed by Playfish that could be played on Facebook The game ranked as one of the most popular Facebook applications Players could design their pets by choosing genders names colors and altering appearances How much did these game make Pet Society The game was launched August by Playfish and at its “peak had million monthly players million daily players and made as much as a day by selling in game items The Sims Social peak had million monthly players million daily players and made as much as a day by selling in game items The Sims Social peak had million monthly players million daily players and made as much as a day by selling in game items THAT IS Indian Rupee a day EA shuts down “older Facebook gamesEA has announced its intention to shut down Facebook games The Sims Social SimCity Social and Pet Society EA said it took the “difficult decision to “retire what it described as its “older Facebook games after witnessing the number of players and amount of activity for each title decrease “For people who have seen other recent shutdowns of social games perhaps this is not surprising EA said in a statement These games all made by the EA owned social developer PlayFish will go offline on th June In the case of SimCity Social it won t make it to a year online ーthat game launched on th June The Sims Social released on th August Pet Society launched on th August EA offered more detailed statements on each title ーthey re all the same but with the name of the game in question swapped in On The Sims Social it said “We had to make the difficult decision to close down The Sims Social so we can reallocate development resources to other titles that we hope you ll have just as much fun playing We hope you have gotten many hours of enjoyment out of the games and we thank you for everything you ve added to the community The Sims Social hit the headlines last year when EA accused The Ville run by bitter social game rival Zynga of ripping it off The two companies eventually settled the dispute out of court Players of these games have reacted to the news in anger Naomi Szwed from Australia wrote on Facebook of SimCity Social s closure “I only play ONE game on Facebook and this is it It is the ONLY GAME I PLAY You really know how to make customers happy I will boycott anything EA if you remove this Sorry Reacting to the closure of The Sims Social “patty switzer wrote on the Playfish forum “As of now I will not be playing Sims anymore I would like to be reimbursed for the remaining Sims Cash My reasons for leaving now is I will not put anymore money time or effort into playing a game that is ending EA said it will continue to deliver popular titles for Facebook and pointed to PopCap games Bejeweled Blitz Solitaire Blitz and Plants vs Zombies Adventures It vowed to make a special offer to introduce those who have played the games being taken offline to PopCap games “You re a valued fan and we want to make sure you get a smooth transition to PopCap EA said |
2021-06-03 11:42:55 |
海外TECH |
DEV Community |
How I reverse engineered a $10M facebook canvas game |
https://dev.to/allenaj/how-i-reverse-engineered-a-10m-facebook-canvas-game-eek
|
How I reverse engineered a M facebook canvas gameYou might be wondering that I would have used a huge setup like the one given above to reverse engineer Facebooks best canvas game of Well no My setup was more of like…… Why I did that I was a year old boy who was playing around with Adobe s Flash software and well to be really honest I was bored Reverse Engineering the game allowed me to improve my understanding of client side connections and server side connections About the game Stick Run is a free jump n run game that has been playable on the social network Facebook since August The game was developed and published by the then year old German Marc Emanuel Otto It reaches a total of million users Furthermore it has been available free of charge for the Android operating system since Marc Emanuel Otto was even noticed in the American press among the game developers there The game regularly ranked among the top games on facebook in various areas As a result TigMar GmbH was founded which made it possible in for Nekki to participate in Stick Run by porting the game software embedded in Facebook to Android and Apple smartphones in cooperation I have to be honest that it was a lot of fun Finding the right track To reverse engineer any game the first thing we need to look for was the file but in the case of a flash game what I needed was it s source swf file which would be embedded in any website with the flash plugin Finding the swf file would be a piece of cake considering Google chromes element inspector with a lil bit of HTML knowledge The next step was to decompile the swf file but for that we need an external software I used Sothink Swf Decompiler my personal fav to decompile and view the entire code of the game In the below link you can find the code dumped After analysing the code I reached onto line with a public function connectOAuth In the above code I came to realise that Stick Run stores its data onto a BIGDB database online known as “Player IO and every database over there has a private key stick run mdvkubomxeisctikvcha to connect with it but… there s an obvious flaw with this system What if……What if someone like me would connect to the database through my custom made flash file and send requests to the server There s no real way to prevent this except to put all the main digital asset code in the server side code Looking into the data After managing to get the private key from the above code the first thing I did was importing the private key and making another flash file with some very quick and dirty API requests to the server to cross check for any verification I made some item requests and some coins hack from the swf file I hacked the coins to somewhere around but they had an build in ban system hence somehow they managed to ban me xD But guess what I managed to unban myself with the same API requests Conclusions Yes even the top notch games can be hacked Security is obviously a myth Maybe if the developer is nt lazy he could try to fit the client side code s important asset handling in the server side itself Thank you for reading |
2021-06-03 11:36:23 |
海外TECH |
DEV Community |
Angular 12 in Depth |
https://dev.to/angular/angular-12-in-depth-1j6m
|
Angular in DepthIn this article I ll go over almost everything noteworthy in this brand new release I ll also highlight what s changed around Angular just like I did with my previous articles about Angular and Angular If you re just looking for the bird eye view then check out the official release announcement Here I ll dig much deeper into the release notes Join the Ivy league The Angular team has been working on Ivy the new compilation amp rendering pipeline since It was finally released with Angular Since Angular Ivy has been the default for new projects and the ecosystem is slowly migrating to it With Angular the old View Engine is now officially deprecated It will be removed in a future major release Also it won t be possible to create new applications using View Engine Finally Ivy is now the default for new library projects At this point library authors can still rely on View Engine thanks to ngcc the compatibility compiler of Angular but it s really time for them to evaluate whether they can migrate their libraries to Ivy or not A few weeks ago Minko Gechev has published an article to explain that in detail Also check out the related RFC In case you didn t know ngcc is the small process that runs after you create an Angular project or install dependencies When you see messages like Compiling es as esm it s ngcc doing its job What ngccdoes is compile libraries that rely on View Engine so that Ivy can consume those Like me you ve probably noticed that ngcc takes a lot of time to execute and has a very negative impact on developer experience This is why it is crucial for the Angular ecosystem to migrate to Ivy as soon as possible Second until a majority of the ecosystem has moved on the Angular team will have to keep View Engine around which is problematic for a number of reasons Last but not least libraries that rely on View Engine can t depend on Ivy ones Library authors probably can t migrate to Ivy too fast but they should clearly push reluctant users to upgrade Anyways the path forward is to migrate all the things to Ivy asap As a side note if you re not familiar with the internals of Angular then check out the following videos How Angular works by Kara Erickson Deep Dive into the Angular Compiler by Alex Rickabaugh There s also an excellent article about Ivy over there Bye ProtractorIn April the Angular team has announced plans to end the support of Protractor at the end of As of Angular Protractor won t be included by default in new projects Instead the Angular CLI will provide options to use other solutions like Cypress WebdriverIO or TestCafe This means that the ng ee command should continue to be supported in the future As explained in the announcement back in when Protractor was created WebDriver was not a standard and end to end ee tests were hard to write and a nightmare to maintain Protractor brought an innovative solution by wrapping selenium webdriver and provided a way to control the execution flow Of course a lot of things have evolved since then We now have the WebDriver API async and await even top level await woah Also the ecosystem has also evolved Solutions like Cypress Playwright Puppeteer have gained a lot of well deserved popularity Tools like Cypress for example provide a much better developer experience than Protractor leverage the modern standards and even support cross browser testing among other powerful capabilities Another benefit of the current de facto ee testing tools is that they re framework agnostic which is very valuable Long story short maintaining Protractor doesn t make much sense for the Angular team Evolving Protractor now would require too much effort and induce a ton of breaking changes You can find more details in the RFC it s an interesting read The timeline is important for teams projects that have invested a lot of time and energy writing ee tests with Protractor The Angular team is still busy evaluating the feedback collected through the RFC so we ll probably know more later this year Anyways give Cypress a try if you haven t already you won t be disappointed By the way I keep recommending everyone to start using Nrwl NX a wonderful solution that includes support for Angular React Next js Cypress and a lot more Nullish coalescingAngular includes support for using the nullish coalescing operator in Angular templates And this is awesome That operator has been supported in TypeScript since version If you haven t heard about this operator then let me give you a quick explanation The idea is to be able to define a fallback value in case something is null or undefined Here s an example let x foo true If foo is null or undefined then x will be set to true i e the fallback value and we could set it to anything we like Without this awesome operator we would have to write this instead let x foo null amp amp foo undefined foo true Now that Angular supports it too we can finally write expressions such as age calculateAge Instead of the old and more verbose alternative NEAT You can learn more about this change here You can find more information about nullish coalescing in the TypeScript handbook as well as on MDN TypeScript supportAngular introduces support for TypeScript which means that we can now use a ton of new wonderful language features Also support for TypeScript and has been dropped Here s a quick rundown of what TS includes Smart Type Alias Preservation The expected types are displayed by code editors instead of raw types as it occurred before You can learn more about that here Leading Middle Rest elements in Tuple Types We can now include rest elements anywhere within a tuple with a few caveats This is pretty cool for those of us who rely on tuples from time to time Learn more about that here Understanding your project structure TS includes a new flag called explainFiles which instructs the TypeScript to output information about why a filed was included in your program This is very useful for troubleshooting Improvements for uncalled function checks TypeScript can now detect more cases where functions aren t being called For instance when writing foo instead of foo More details and examples can be found here Destructured variables can now be explicitly marked as unused let first second getValues which is awesome no more errors when noUnusedLocals is enabled There s a lot more actually like stricter checks for the in operator and a few breaking changes that might impact you So make sure to check out the release notes Webpack supportAngular brought us experimental support for Webpack With Angular the Webpack support is now production ready wt If you haven t looked at Webpack you re going to be amazed Webpack was released back in October so it s quite stable by now Webpack is currently at version released a few days ago Here s a short explanation about what changed with Webpack and why I m so glad about this First off as you know Webpack is the key piece of the Angular CLI puzzle and it plays a big role for bundle size build performance etc Second Webpack is a major release for a reason It includes a number of breaking changes which explains why it took a while for Angular and a gazillion utilities libraries in the ecosystem to upgrade In the release notes the Webpack team indicated that Webpack focuses on Improving the build performance with persistent cachingImproving long term caching with better algorithms amp defaultsImproving bundle size with better Tree Shaking and code generationImproving compatibility with the Web platformCleaning up internal structuresIntroducing breaking changes haha now allowing them to stay on v for as long as possibleThe coolest feature of Webpack is its support for Module Federation which provides the foundations necessary to facilitate the creation of micro front ends It s a bit out of scope of this article but in a jiffy module federation makes it possible for different builds to behave like a huge connected module graph and allows us to import and use modules from remote builds Check out the official documentation to know more If you re curious then you should take a look at Manfred Steyer s talk about that subject Among the major changes Webpack has dropped everything that was previously deprecated e g NoEmitOnErrorsPlugin ModuleConcatenationPlugin NamedModulesPlugin as well as IgnorePlugin and BannerPlugin Also the Node js polyfills that were previously automatically injected have been removed and that is one of the biggest changes in that release Those polyfills initially allowed Webpack to let us use modules made for Node js in the browser That was cool but it had a major downside larger bundles In addition those polyfills were less and less useful as there were either browser compatible alternatives of libraries or specific distributions with Browser support As of Webpack since those polyfills won t be added automagically anymore we might stumble upon some surprises For instance in cases where we use modules made for Node js in the browser without realizing that it previously worked thanks to Webpack You can learn more about that here Webpack has introduced better support for long term caching In production mode it now includes new algorithms by default chunkIds deterministic moduleIds deterministic mangleExports deterministic As the value indicates those algorithms assign deterministic IDs to chunks and modules and deterministic names to exports Webpack is able to perform nested tree shaking by tracking access to nested properties of exports welcome to the Matrix which should further improve tree shaking Also it can now analyze dependencies between the exports and imports of a module There are also improvements to CommonJS tree shaking And there are a ton more optimizations Webpack also includes a number of changes to improve the developer experience For example there s a new named chunk id algorithm that is enabled by default in development mode That new algorithm gives human readable names to chunks The target property has also been vastly improved To be honest I don t have enough space here to cover everything new with Webpack there s just way too much So I ll stop here If you only use Webpack indirectly through the Angular CLI then most of this should be transparent for you But if you re using a custom Webpack build in your project then you should probably take a look at the migration guide Finally if you re curious about what s coming next with Webpack then check out the roadmap for and of course the latest release notes IE support is deprecatedAs sad as it may sound who am I kidding Angular is deprecating support for IE Internet Explorer is dead for most of us but unfortunately many organizations still use it in production IE support will thus be removed by Angular which means that those organizations really need to start moving away from IE which is a good thing anyway No more excuses Once the IE support is gone Angular will be smaller faster and thus better for all of us Also once the burden of maintaining backwards compatibility with legacy browsers will be gone IE is the last of those then Angular will be able to leverage modern APIs e g CSS variables Intersection Observer CSS Grid Proxies Web Animations and more I really can t wait for IE support to be gone Strict by defaultYES YES YES As of Angular the strict mode of Angular is enabled by default in the CLI And this is awesome As you know I m a huge fan of TypeScript s strict mode but also of Angular s strict mode If you want to know more then check out the article I wrote last year and Minko Gechev s article explaining the change Production build by defaultUp until now running the ng build command created a development build As of Angular ng build will now default to a production build Hopefully it will help some teams avoid making the mistake of building amp deploying development builds to production environments Although I fear that teams making that mistake will still have other issues to deal with Sass support for inline stylesAngular supports Sass since a very long time but so far we could only use Sass in external stylesheets With Angular it is now possible to use Sass together with inline component styles i e within the styles property This needs to be enabled by setting the new inlineStyleLanguage property to true in angular json Tailwind supportTailwind is now officially supported by Angular Actually support was introduced in the Angular CLI in v Tailwind is busy taking over the world especially now that it has a rad JIT compiler and it s wonderful to have built in support for it in Angular Previously adding Tailwind to an Angular project required customizing the Webpack build Not anymore Now adding Tailwind is as simple as installing the package creating the tailwind config js file using npx tailwindcss init and making sure to enable Tailwind s JIT mode Http improvementsAngular introduces a number of improvements around its HTTP support Metadata for requests and interceptorsFirst the HttpClient can now be used to store and retrieve custom metadata for requests This is particularly useful for HTTP interceptors This capability can be used through the new HttpContext Previously it was complicated to provide context to interceptors but now it will be much more straightforward Now the different HTTP methods provided by HttpClient include a new context HttpContext option which we can used to pass in a map Netanel Basal has written an article about this so check it out if you want to know more appendAll on HttpParamsThe HttpParams class now has a new appendAll method which can be used to easily add a set of parameters at once appendAll params param string string string HttpParams Params can now be passed as numbers and booleansPreviously numbers and booleans could not directly be used as HTTP parameters We had to transform those into strings Not anymore HttpStatusCodeAngular has introduced its own list of human readable names for HTTP status codes in the form of a const enum Previously we had to introduce our own solution if we wanted to have human readable names Thanks to this new feature we can now instead use HttpStatusCode For example if response status HttpStatusCode Ok For those who use TypeScript on both back end and front end this isn t super useful as we probably all have our own abstraction already but if your project only uses TypeScript Angular on the front end then it s a nice improvement XhrFactoryThe XhrFactory class has been moved to a different package It is now exposed by angular common instead of angular common http Note that a migration has been included in the upgrade so you won t even notice if you run ng update Router changesThe Angular router has changed a bit in Angular First the routerLinkActiveOptions directive has been enhanced Now it is possible to specify whether we require an exact match or not for different parts of the URL in order to add a CSS class to a link Previously we could only require an exact match or not for the whole URL lt a routerLink products foo routerLinkActive highlight product routerLinkActiveOptions exact true gt foo lt a gt Now we can instead provide fine grained matching rules for paths query parameters matrix parameters and fragments lt a routerLink products foo routerLinkActive highlight product routerLinkActiveOptions paths exact queryParams subset matrixParams ignored fragment ignored gt foo lt a gt The supported values are exact ignored and subset which can be used for queryParams and matrixParams For paths you can either pass in exact or subset and exact or ignored for the fragment Note that the isActive method of the router also accepts these new options fragment is nullableUp until now ActivatedRouteSnapshot fragment was not nullable This has changed with Angular Don t worry too much though ng update has got you covered Forms More control over emitted eventsThe emitEvent option has been added to various methods of FormGroup and FormArray Thanks to this change it will now be possible to control whether events need to be emitted or not in more cases For instance previously when a control was removed using the removeControl method of FormGroup then an event was always emitted With this change we will now be able to avoid such problems The emitEvent option has been added to the following methods of FormGroup addControlremoveControlsetControlAnd to the following methods of FormArray pushinsertremoveAtsetControlclear min and max validators support for template driven formsThe min and max validators of Angular can now be used with template driven forms lt input ngModel foo bar min min max gt Note that this is a breaking change since those would previously be ignored inThe in system of Angular has changed with this release As pointed out in the announcement blog post there are currently a number of legacy message id formats being used Those are fragile and issues can appear because of whitespace formatting templates amp ICU expressions Angular introduces a new canonical message id format i e one format to rule them all This format is more resilient and more intuitive This format will reduce the unnecessary translation invalidation and associated retranslation cost in applications where translations do not match due to whitespace changes for example Since v new projects are automatically configured to use the new message ids and now there is tooling in place to migrate existing projects with existing translations If you re concerned then you can use the localize migrate tool to migrate your message ids ng extract in format legacy migratenpx localize migrate files xlf map file messages jsonYou can find more information here Performance improvementsWith this release there are a number of performance improvements The most obvious one comes along with the upgrade to Webpack but there s more A number of unused methods have been removed from DomAdapter It s cool because its methods aren t tree shakeable and were included in all Angular applications as explained in the corresponding PR Angular now generates less code for safe property access for example for template expressions like a b and the newly supported null coalescing a b The Angular compiler now supports incremental compilation even in the presence of redirected source files Previously work from prior compilation could not be reused when TypeScript deduplicated source files You can read more about that here The Angular compiler now caches the filesystem path of source files Previously it repeatedly called fs resolve which is time consuming The getDirectives function has been improved Along with that change the ng namespace has also been expanded to include a new getDirectiveMetadata utility And there s some more ng API improvementsThe ng debugging API that we can use from the browser dev tools has been improved with Angular There s a new function called getDirectiveMetadata which can be used to retrieve information about components and directives I don t think we ll need it often but future dev tooling improvements will most probably rely on this You can find out more over here A new profiler function called esetProfiler has also been implemented and it is also available in production mode That new function can be called in a number of scenarios For instance it can be used to trace template creation durations template updates lifecycle hooks processing etc Again this API will be taken advantage of by upcoming dev tools giving us a lot more insightful information about how our applications are performing at runtime This is still experimental at this point but I guess we ll hear more about this later on I m curious to see if when tools like Sentry will integrate support for collecting this kind of information in order to provide us with useful performance dashboards New Dev ToolsA few days after the release of Angular the Angular team has announced the availability of brand new Angular Dev Tools for Google Chrome You can download those here Using that brand new browser extension you can easily inspect your Angular applications during development It supports Visualizing the structure of the application i e inspecting the component tree Exploring and editing componentsProfiling performancesUsing the embedded profiler we can record change detection events and preview those as they occur For each change detection cycle we can look at how long it took which components took the longest time whether that cycle caused frame drops Angular previously had semi official Dev Tools through the Augury project which are the basis of the new tools but those were not compatible with Ivy So this is great news for the Angular community And more There s a ton more minor changes in this release Here s a quick overview APP INITIALIZER now supports ObservablesUp until now it wasn t possible to use Observables with APP INITIALIZER As of Angular we can now do so which is going to allow for cleaner code In case you didn t know about this feature of Angular yet APP INITIALIZER is a token that we can use to define functions that need to execute during application initialization If that function is asynchronous returning a Promise or an Observable new p then Angular waits for it to complete before starting the application This change is more than welcome as it means that we can write even more code using RxJS instead of having to fall back to the Promise API You can read more about that here Runtime control over animationsPreviously the only way to disable animations was to provide the NoopAnimationsModule As of Angular it is now possible to disable animations based on runtime information using BrowserAnimationModule withConfig method and passing it the disableAnimations boolean property New historyGo method on Location serviceThe LocationService of Angular now includes a historyGo method which can be used to navigate towards a specific page in the session history identified by its relative position to the current page This method corresponds to the native window history go method Check out MDN for some examples Language service improvementsThe language service which is what provides IDEs all the useful insights about Angular code has also improved with this release With Angular the language service is enabled by default previously it required us to opt in As of Angular it will also detect if strict template type checking is not enabled and will advise you to enable those The language service now also includes performance tracing capabilities which can be used to trace performances This can be enabled in VSCode as explained here this is fairly low level though If you don t know about the language service yet check out the official docs or the nice blog post written by Ninja Squad or this video intro Disable lint rules directly from HTML templatesThe Angular template compiler now keeps track of HTML comments Previously it wasn t possible to disable linter rules from HTML templates because the Angular template compiler ignored comments The workaround was to disable those rules for the whole template from the component s controller Thanks to this change it will now be possible to do this more precisely from the template lt eslint disable next line angular eslint template no any gt lt span gt any foo bar lt span gt Yay for cleaner code The DatePipe now supports ICU standard Stand Alone day of weekPreviously it wasn t possible to format a date to Stand Alone day of week using the DatePipe Thanks to this change Finnish date formatting is now supported and I m sure that it is great news for a fraction of the Angular community Support for forwardRef in providedIn fields of Injectable decoratorsIt is now possible to use forwardRef within the providedIn field of the Injectable decorator New transformResource hook on the ResourceHost interfaceA transformResource method has been added to the ResourceHost interface Thanks to this it is now possible for tooling to do things like introducing preprocessor support for inline styles This is what enables the new support for SASS with inline styles You can learn more about that here and here Possible to create custom router outlet implementationsUp until now creating custom router outlets was possible but required jumping through some hoops i e registering custom outlets with ChildrenOutletContexts Angular provides a cleaner support for custom router outlets Bug fixesAs usual there s a gazillion bug fixes included in this release Here s a copy of the release notes animations ensure consistent transition namespace ordering cc animations update supported range of node versions to only include LTS versions e animations cleanup DOM elements when the root view is removed cb animations allow animations on elements in the shadow DOM dadc closes animations cleanup DOM elements when the root view is removed ada bazel update supported range of node versions to only include LTS versions bazel update build tooling for latest changes in rules nodejs fbc bazel update integration test to use rules nodejs dea bazel update type castings for JSON parse usage c benchpress update type castings for JSON parse usage ead common add right ContentType for boolean values with HttpClient request body a common update supported range of node versions to only include LTS versions fbfd common viewport scroller not finding elements inside the shadow DOM cfba closes common temporarily re export and deprecate XhrFactory dfa common cleanup location change listeners when the root view is removed c closes common allow number or boolean as http params cdc closes common avoid mutating context object in NgTemplateOutlet db closes compiler preserve page rules in encapsulated styles eba closes compiler strip scoped selectors from font face rules acda closes compiler update supported range of node versions to only include LTS versions bae compiler non literal inline templates incorrectly processed in partial compilation abb compiler not generating update instructions for ng template inside alternate namespaces bcbbda closes compiler avoid parsing EmptyExpr with a backwards span ea compiler handle case sensitive CSS custom properties ee closes compiler include used components during JIT compilation of partial component declaration ffb closes compiler support multiple host context selectors baf closes compiler update type castings for JSON parse usage f compiler cli use for the source map URL of indirect templates ad closes compiler cli expose the linker as a Babel plugin fdacf compiler cli prefer non aliased exports in reference emitters bb closes compiler cli allow linker to process minified booleans fb closes compiler cli match string indexed partial declarations f closes compiler cli update supported range of node versions to only include LTS versions bf compiler cli autocomplete literal types in templates bbef compiler cli do not error with prepocessing if component has no inline styles afeb compiler cli ensure the compiler tracks ts Programs correctly deacc compiler cli prevent eliding default imports in incremental recompilations f closes compiler cli resolve rootDirs to absolute efda closes compiler cli add useInlining option to type check config aefd closes compiler cli readConfiguration existing options should override options in tsconfig bcd compiler cli extend angularCompilerOptions in tsconfig from node eb closes compiler cli update ngcc integration tests for latest changes in rules nodejs df compiler cli update type castings for JSON parse usage bdcb core do not retain dynamically compiled components and modules cc closes core invoke profiler around ngOnDestroy lifecycle hooks eddc core AsyncPipe now compatible with RxJS bca core handle multiple in attributes with expression bindings cc closes core update supported range of node versions to only include LTS versions fcf core detect synthesized constructors that have been downleveled using TS dc closes core Switch emitDistinctChangesOnlyDefaultValue to true core remove duplicated EMPTY OBJ constant bfe core remove duplicated EMPTY ARRAY constant edde core allow EmbeddedViewRef context to be updated ae closes core make DefaultIterableDiffer keep the order of duplicates a closes core NgZone coaleascing options should trigger onStable correctly fe elements update supported range of node versions to only include LTS versions fd elements update type castings for JSON parse usage efd forms update supported range of node versions to only include LTS versions dcba http complete the request on timeout abd closes http emit error on XMLHttpRequest abort event closes language service update supported range of node versions to only include LTS versions bc language service use script versions for incremental compilations bf language service Only provide Angular property completions in templates a language service Add plugin option to force strictTemplates eec language service use single entry point for Ivy and View Engine ea localize relax error to warning for missing target ceed closes localize update supported range of node versions to only include LTS versions edf localize update type castings for JSON parse usage bc ngcc detect synthesized constructors that have been downleveled using TS dda closes platform browser prevent memory leak of style nodes if shadow DOM encapsulation is used d closes platform browser update supported range of node versions to only include LTS versions eacfd platform browser configure XhrFactory to use BrowserXhr ee closes platform browser update type castings for JSON parse usage ecfdd platform browser dynamic update supported range of node versions to only include LTS versions bc platform server update supported range of node versions to only include LTS versions bdfa router update supported range of node versions to only include LTS versions edd router Only retrieve stored route when reuse strategy indicates it should reattach aff closes router recursively merge empty path matches dc closes router fragment can be null b closes router update type castings for JSON parse usage dada service worker update supported range of node versions to only include LTS versions bd service worker update type castings for JSON parse usage fff upgrade preserve interval flush when ngMocks is being used dc upgrade update supported range of node versions to only include LTS versions c By the way did you notice that AsyncPipe has been patched by Ben Lesh to be compatible with both RxJS and How cool is that Breaking changesAs usual there are a number of breaking changes with this release As the official release notes are pretty clear I m just copy pasting those here Minified UMD bundles are no longer included in the distributed NPM packages animations DOM elements are now correctly removed when the root view is removed If you are using SSR and use the app s HTML for rendering you will need to ensure that you save the HTML to a variable before destorying the app It is also possible that tests could be accidentally relying on the old behavior by trying to find an element that was not removed in a previous test If this is the case the failing tests should be updated to ensure they have proper setup code which initializes elements they rely oncommon Methods of the PlatformLocation class namely onPopState and onHashChange used to return void Now those methods return functions that can be called to remove event handlerscommon The methods of the HttpParams class now accept string number boolean instead of string for the value of a parameter If you extended this class in your application you ll have to update the signatures of your methods to reflect these changescompiler cli Linked libraries no longer generate legacy in message ids Any downstream application that provides translations for these messages will need to migrate their message ids using the localize migrate command line toolcore Angular no longer maintains support for node v so if you re still using it for your development environment it s really time to upgrade core Previously the ng getDirectives function threw an error in case a given DOM node had no Angular context associated with it for example if a function was called for a DOM element outside of an Angular app This behavior was inconsistent with other debugging utilities under ng namespace which handled this situation without raising an exception Now calling the ng getDirectives function for such DOM nodes would result in an empty array returned from that functioncore Switching default of emitDistinctChangesOnlyDefaultValue which changes the default behavior and may cause some applications which rely on the incorrect behavior to failemitDistinctChangesOnly flag has also been deprecated and will be removed in a future major releaseThe previous implementation would fire changes QueryList changes subscribe whenever the QueryList was recomputed This resulted in an artificially high number of change notifications as it is possible that recomputing QueryList results in the same list When the QueryList gets recomputed is an implementation detail and it should not be the thing that determines how often change event should fire Unfortunately fixing the behavior outright caused too many existing applications to fail For this reason Angular considers this fix a breaking fix and has introduced a flag in ContentChildren and ViewChildren that controls the behavior export class QueryCompWithStrictChangeEmitParent ContentChildren foo This option is the new default with this change emitDistinctChangesOnly true foos QueryList lt any gt For backward compatibility before vemitDistinctChangesOnlyDefaultValue was set to false This changechanges the default to true core The type of the APP INITIALIZER token has been changed to more accuratelyreflect the types of return values that are handled by Angular Previously each initializer callback was typed to return any this is nowPromise lt unknown gt Observable lt unknown gt void In the unlikely event thatyour application uses the Injector get or TestBed inject API to injectthe APP INITIALIZER token you may need to update the code to account forthe stricter type Additionally TypeScript may report the TS error if the APP INITIALIZERtoken is used in an expression of which its inferred type has to be emittedinto a d ts file To workaround this an explicit type annotation is needed which would typically be Provider or Provider core Minimum supported zone js version is Thus it means that if you re using an older version it s also time to upgrade zone js in your project forms The emitEvent option was added to the following FormArray and FormGroup methods FormGroup addControlFormGroup removeControlFormGroup setControlFormArray pushFormArray insertFormArray removeAtFormArray setControlFormArray clearIf your app has custom classes that extend FormArray or FormGroup classes and override theabove mentioned methods you may need to update your implementation to take the new options intoaccount and make sure that overrides are compatible from a types perspective forms Previously min and max attributes defined on the lt input type number gt were ignored by Forms module Now presence of these attributes wouldtrigger min max validation logic in case formControl formControlNameor ngModel directives are also present on a given input andcorresponding form control status would reflect that platform browser XhrFactory has been moved from angular common http to angular common Beforeimport XhrFactory from angular common http Afterimport XhrFactory from angular common router Strict null checks will report on fragment potentially being null Migration path add null check router The type of the RouterLinkActive routerLinkActiveOptions input wasexpanded to allow more fine tuned control Code that previously readthis property may need to be updated to account for the new type Updated roadmapAccording to the current Angular roadmap the team is now busy with the following improvements Improving developer experience while debugging and profiling This should help us to understand the component structure I imagine like React Dev Tools allow for React and change detectionImproving test times and debugging with automatic tear down This should improve the isolation between tests and test times The TestBed will also be changed to automatically clean up and tear down the test environment after each test is executedUsing ES as the default output They ll identify roadblocks and remove those so that the default output language can be upgradedIntegrating MDC Web into Angular MaterialImproving the accessibility of Angular Material componentsPublishing guides about advanced concepts such as change detection performance profiling interactions with Zone js etcUpdating the ee testing strategy cfr above Preparing the upgrade to RxJS v As you might know RxJS has been released recently Hopefully we should soon be able to upgradeIn the future the Angular team plans to Look into micro frontend architecture they might introduce means for us to easily create micro frontends using AngularImprove developer experience with strict typing for Angular forms we so desperately need this Make Zone js optional which should simplify the framework improve debugging reduce bundle sizes and even allow taking advantage of the native async await syntaxImprove build performance by integrating the Angular compiler ngc as a TypeScript compiler pluginAllow adding directives to host elements This has been requested by the community for a long time too Make NgModules optional to ease the learning curveProvide us with easier means to implement code splitting at the component level Angular Material amp Angular CDK Sass migrationInternally both Angular Material and the CDK have migrated to the new Sass module system If your application uses either of those then you ll need to make sure that you ve replaced node sass by sass The node sass package is not maintained anymore With this migration the Sass theming API has been enhanced and it now allows us to take advantage of Sass s use utility There s now a single entry point for angular material and angular cdk Finally the APIs have also been changed for clarity Many functions mixins and variables have been renamed along the way You can find more information about these changes in the new theming guide In addition note that the guides on have been rewritten to showcase the new API and include explanations The upgrade process will automatically migrate code to the new Sass API You can find before after examples here Angular CDK changesVersion includes a number of changes to the Angular CDK Here I ll only list the new features but you can check out the release notes if you want details about the bug fixes and performance improvements Drag drop The dropped event now includes a dropPoint property determining the exact point where the mouse pointed was when the item was dropped More info hereDrag drop The preview container can now be customizedTable A new directive allows to enable the recycle view repeater which caches disposed rows and reuses them when the dataset changes This can help improve performances reduce latency Table Added the offsets of sticky elements to the StickyUpdate interfaceStepper When a user tries to move away from a step an interacted event will now be emittedStepper The orientation can now be changedAccessibility A FocusOptions object can now be passed into the various focus trap methodsTesting New WebDriver harness environment I haven t dived into this one yet so I can t tell you more Check out the PR Angular Material changesThere are also a number of changes for Angular Material Again check out the release notes for the full list of bug fixes New features Date picker No longer depends on dialogStepper The orientation can now be changed dynamically cfr similar change in the CDK Stepper Allow for content to be rendered lazilyMenu Allow updating the menu position programmaticallyMat error Now uses aria live polite instead of role alert More details hereTabs Add method to programmatically set focus on a specific tabList Now returns an array with changed options from the selectAll and deselectAll methods Check out the PR for detailsSlide toggle Allow to globally configure a default color through a providerTooltip Now exposes the effective position of the tooltip through a class on the componentRadio Checkbox and Slider Include the background color of those components in the print stylesheetsThere are also a number of changes on the experimental version material experimental Angular UniversalAngular Universal is also fresh out of the oven With this release Universal now inlines critical CSS by default which is pretty cool Universal now includes a new proxyConfig option to provide custom proxy configurations to the ssr dev server builder In this version there s a new experimental SSR engine called Clover reminds me of a quality tool in the Java ecosystem This new engine seems promising It aims to simplify things get us rid of the Window is undefined error remove the need for multiple builds for SSR prerender generate application shells without an extra build and more We ll probably hear more about it later on If you re curious then check out the PR This version includes a builder that can be used to generate static pages i e pre rendering using the new Universal Clover approach Finally this version also includes TLS support for the dev server Google MapsAs you know Angular includes components for Google Maps and Youtube Version brings a few improvements for the Google Maps component Now includes an icon input to easily customize the markerNow emits a clusterClick event when a cluster has been clickedIncludes a wrapper around the Google Maps Geocoder API and exports MapDirectionsResponse which was not exposed beforeIntroduces support for rendering heatmapsAdded MapDirectionsRenderer allowing to render directions on a map and MapDirectionsService which wraps google maps DirectionsService to calculate routes between two points New options input on the marker clusterer similar to the other directives UpgradingAs usual there s a complete upgrade guide available and ng update will help you out v If you re using Nrwl NX you really should note that Nx includes support for Angular already Learn more about that here As an added benefit Nx will also help you migrate from TSLint to ESLint and it s time ConclusionIn this article I ve explored the new features of Angular As usual this is release is heroic what else could it be Ivy is moving forward and hopefully we ll soon be less annoyed by ngcc as the ecosystem migrates There are a number of awesome changes with this release so check it out and upgrade now That s it for today PS If you want to learn tons of other cool things about product software Web development then check out the Dev Concepts series subscribe to my newsletter and come say hi on Twitter |
2021-06-03 11:32:35 |
Apple |
AppleInsider - Frontpage News |
Philips Hue app gets massive overhaul with new features & faster response times |
https://appleinsider.com/articles/21/06/03/philips-hue-app-gets-massive-overhaul-with-new-features-faster-response-times?utm_medium=rss
|
Philips Hue app gets massive overhaul with new features amp faster response timesSignify has launched a major redesign to its mobile Philips Hue app to expand functionality and ease of use as well as response time and we got to take the app for an early spin ahead of the launch The home tab of the revamped Philips Hue appHome screen Read more |
2021-06-03 11:43:08 |
Apple |
AppleInsider - Frontpage News |
New iOS 14.7 beta causing 'SIM Failure' for some testers |
https://appleinsider.com/articles/21/06/03/new-ios-147-beta-causing-sim-failure-for-some-testers?utm_medium=rss
|
New iOS beta causing x SIM Failure x for some testersApple s iOS beta has reportedly been causing a number of developers iPhones to be unable to make or receive calls Some reports claim the SIM Failure message is mostly affecting eSIM usersShortly after Apple s release to developers of a second iOS beta multiple reports say that the update is causing problems with devices It s not known how widespread the issue is and Apple has not yet commented Read more |
2021-06-03 11:38:11 |
Apple |
AppleInsider - Frontpage News |
MagSafe has 'clinically significant' risk to cardiac devices, says American Heart Association |
https://appleinsider.com/articles/21/06/03/magsafe-has-clinically-significant-risk-to-cardiac-devices-says-american-heart-association?utm_medium=rss
|
MagSafe has x clinically significant x risk to cardiac devices says American Heart AssociationApple MagSafe devices can interfere with pacemakers when placed directly over the skin or in very close proximity says the American Heart Association Apple s iPhone range introduced MagSafe chargingThe Journal of the American Heart Association has concurred with a previous report by the Heart Rhythm Journal which said close contact with an iPhone affected certain implantable cardiac devices As with that report the American Heart Association says the effect are solely when the iPhone is on or very near the implant Read more |
2021-06-03 11:16:52 |
海外TECH |
Engadget |
The Morning After: Spotify's Only You lays out your weird music tastes |
https://www.engadget.com/the-morning-after-spotifys-only-you-lays-out-your-weird-music-tastes-112600855.html?src=rss_b2c
|
The Morning After Spotify x s Only You lays out your weird music tastesToday s tech headlines Spotify s Only You feature shows how weird your musical tastes are the next Sonos Ikea collaboration is a speaker picture frame and Donald Trump s blog is already dead |
2021-06-03 11:44:32 |
海外科学 |
NYT > Science |
Why Are We All Talking About U.F.O.s Right Now? |
https://www.nytimes.com/2021/06/03/us/ufos-report.html
|
government |
2021-06-03 11:12:41 |
ニュース |
BBC News - Home |
Napier Barracks: Housing migrants at barracks unlawful, court rules |
https://www.bbc.co.uk/news/uk-england-kent-57335499
|
covid |
2021-06-03 11:16:44 |
ニュース |
BBC News - Home |
Fishmongers' Hall: Firearms officer thought he was not going home |
https://www.bbc.co.uk/news/uk-england-london-57322808
|
cambridge |
2021-06-03 11:46:30 |
ニュース |
BBC News - Home |
Queen to meet US President Joe Biden next week |
https://www.bbc.co.uk/news/uk-57345764
|
majesty |
2021-06-03 11:46:38 |
ニュース |
BBC News - Home |
Birmingham stabbing: Man charged with murder of Dea-John Reid |
https://www.bbc.co.uk/news/uk-england-birmingham-57342979
|
significant |
2021-06-03 11:15:37 |
ニュース |
BBC News - Home |
Brixton shooting: Crowds throw objects at police |
https://www.bbc.co.uk/news/uk-england-london-57327656
|
crowds |
2021-06-03 11:16:19 |
ニュース |
BBC News - Home |
Abortion: Texas teen attacks new law in high school graduation speech |
https://www.bbc.co.uk/news/newsbeat-57343832
|
script |
2021-06-03 11:31:22 |
ニュース |
BBC News - Home |
World number one Barty retires from French Open with injury |
https://www.bbc.co.uk/sport/tennis/57344296
|
french |
2021-06-03 11:23:13 |
ニュース |
BBC News - Home |
Inter Milan announce Inzaghi as new boss |
https://www.bbc.co.uk/sport/football/57344105
|
antonio |
2021-06-03 11:39:27 |
ニュース |
BBC News - Home |
England v New Zealand: Mark Wood dismisses Henry Nicholls |
https://www.bbc.co.uk/sport/av/cricket/57344506
|
england |
2021-06-03 11:25:55 |
ビジネス |
ダイヤモンド・オンライン - 新着記事 |
「女人禁制」撤廃への対応が、土俵と酒蔵で分かれる理由 - News&Analysis |
https://diamond.jp/articles/-/272417
|
「女人禁制」撤廃への対応が、土俵と酒蔵で分かれる理由NewsampampAnalysis年、BBCの「今年の人の女性」に広島県の老舗酒蔵、今田酒造本店の代目蔵元で杜氏とうじの今田美穂さんが選ばれ、大きな話題になった。 |
2021-06-03 20:30:00 |
LifeHuck |
ライフハッカー[日本版] |
2021年5月ライフハッカー読者が購入した「書籍」ランキングTOP10 |
https://www.lifehacker.jp/2021/06/235869matome-book-review-ranking.html
|
購入 |
2021-06-03 21:00:00 |
北海道 |
北海道新聞 |
愛知、宣言解除の前倒しは困難 新たに288人感染 |
https://www.hokkaido-np.co.jp/article/551447/
|
大村秀章 |
2021-06-03 20:02:13 |
北海道 |
北海道新聞 |
こども庁創設へ緊急決議 自民の検討機関 近く政府に提出、骨太反映目指す |
https://www.hokkaido-np.co.jp/article/551477/
|
骨太 |
2021-06-03 20:14:46 |
北海道 |
北海道新聞 |
41歳の竹谷佳孝が65で首位 男子ゴルフ第1日 |
https://www.hokkaido-np.co.jp/article/551485/
|
男子ゴルフ |
2021-06-03 20:12:00 |
北海道 |
北海道新聞 |
大阪市、最多の1万4千人が予約 自衛隊ワクチン大規模接種 |
https://www.hokkaido-np.co.jp/article/551484/
|
新型コロナウイルス |
2021-06-03 20:12:00 |
ニュース |
Newsweek |
「押しかけ」中国海軍の長居は迷惑!? インドネシア、沈没潜水艦回収を断念 |
https://www.newsweekjapan.jp/stories/world/2021/06/post-96445.php
|
船体回収には深海での作業が可能な中国海軍の特殊救難艇など隻が中国から駆けつけてインドネシア海軍と協力して作業を進めていたが、「回収作業は大きな困難に直面し、断念せざるを得なかった」と回収作業の中止を明らかにした。 |
2021-06-03 20:20:54 |
ニュース |
Newsweek |
移民の流入を減らしたいなら、カギは農業の支援にあり |
https://www.newsweekjapan.jp/stories/world/2021/06/post-96440.php
|
|
2021-06-03 20:20:00 |
コメント
コメントを投稿