Page 1


About the magazine The magazine is inspired by NG Poland Behind the Code Magazine. The founder of BtCM is Dariusz Kalbarczyk - NG Poland and JS Poland Conference organizer. The idea of a magazine is to discover the human factor of coding. "What we achieve as humans depends on our attitude, hard work and being open to new challenges. The goal of BTCM is to bring out the stories of people from the world of technology and show their true, human side. Behind ideas stands technology, and behind technology stand people. People who become role models and set a standard for making the world a better place." Dariusz Kalbarczyk BtCM Founder, NG Poland Conference Organizer

"We believe that people create technology and the community is a huge part of every conference. Read about Angular authorities from all over the world, who are absolutely positive and full of passion. Learn. Inspire. Enjoy!" Marta Wiśniewska BtCM Editor, Angular Developer

Don't miss our next conference NG Poland and JS Poland happening on 19th November 2019!


EDITORIAL

It brings me great joy to watch the growth and development of BTCM and this issue turned out exceptional. For the first time we are crossing borders and stepping outside of Poland. Where? Straight into India! Before we get there though, I’d like to welcome Marta Wisniewska on our team. Even though we started our collaboration while working on the previous edition of BTCM, this is the first opportunity to officially announce her. Marta is an incredibly hard working individual, who shares her positive energy with anyone she comes in contact with. Marta – thank you for being a part of our growing family! Now back to this issue of BTCM and the magnificent trip to India. The second edition of Ng-India was held on February 23 rd in New Delhi. Over 300 attendees traveled from Nepal and 25 different cities in India to participate in this event. The conference itself was perfectly organized and the phenomenal energy was felt on and off the stage. I’d like to take this moment to thank especially the organizer Dhananjay Kumar “DJ”. Organizing such events myself, I know what immense amount of work it takes to take this kind of show on the road. That’s why, DJ and the entire crew working on ng-India – I salute you! You guys rocked! 16 speakers from: USA, Austria, Norway, Poland, Germany, Hungary and of course India took the stage and gave an outstanding performance. A variety and scope of interesting topics fused with world-renowned names guaranteed the highest quality. It was a great conference! Meanwhile, I’d like to invite you to read BTCM, where besides technical topics you’ll find tons of inspiration and positive energy. Dariusz Kalbarczyk ng-India 2019

|

BEHIND THE CODE MAGAZINE

3


India's largest Angular Conference

February 23, 2019 Gurgaon, India


Dhananjay Kumar

ORGANIZERS


All-day training Don't miss 11 Hrs of deep dive learning of Angular, JavaScript, and RxJ

16 Top Speakers We invited Angular and RxJS Core Team Members, Microsoft MVP, GDE , and Industry Experts to share their knowledge


300+ delegates in one place We believe in power of learning and networking together. Ng-India is a perfect event for Developers , Coders, Product Makers, Project Managers, Startup and Recruiters.

14 Inspiring Talks Let's come and join live Coding based talk on Angular, JavaScript, and RxJS


TABLE OF CONTENTS

INTERVIEWS

Meet passionate about Angular Dhananjay Kumar

12

Pankaj Parkar

14

Maxim Salnikov

16

Jan-Niklas Wortmann

18

Katerina Skroumpelou

24

`

Michael Hladky

8

26

Siwat Kaolueng

28

Nishu Goel

31

BEHIND THE CODE MAGAZINE

|

Ng-India 2019


TABLE OF CONTENTS

Anchal Bhandari

34

Brecht Billiet

36

Ajay Prabhakar Barokar

37

Suguru Inatomi

38

Kwinten Pisman

44

Marta Wisniewska

46

Ankit Sharma

`

48

58

Zackary Chapple

BEHIND THE CODE MAGAZINE

9


TABLE OF CONTENTS

ARTICLES Read and code Browsers, not apps, are the future of mobile

18

Hugh Durkin

Angular & SPAs

32

Nishu Goel

Google Play Store now open for Progressive Web Apps!

40

Maximiliano Firtman

Localization In Angular Using i18n Tools

49

Ankit Sharma

BEHIND THE CODE MAGAZINE

|

ng-India 2019

10


ng-India's speakers We are excited to host speakers from across the world


INTERVIEW Dhananjay Kumar Organizer ng-India, Developer Evangelist

My name is Dhananjay Kumar. I work as Developer Evangelist for Infragisitics. I am a Microsoft MVP since 2010. I organize ng-India. debug_mode Why do you love programming? It makes me feel that I am solving problems which impact lives.

Did you start your career as a developer? What made you start programming? Yes I started my career as a developer. I did my graduation in Computer Science and Engineering and after that getting a job as developer was obvious progression. What do you think about getting involved with the community? I have been involved with community since 2008. I was just college pass out and started participating in community. Being part of communities helped me getting better jobs, recognition, and exposures. whatever we give to community , it always returns us back. You learn, you teach, you inspire , you get inspired in the community. Everyone should participate in communities.

12

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW

Dhananjay Kumar

this.you = Universe.subscribe(attitude => {this.yourattitude = attitude.positivity}); by Dhananjay Kumar

What do you think about getting involved with the community? I have been involved with community since 2008. I was just college pass out and started participating in community. Being part of communities helped me getting better jobs, recognition, and exposures. whatever we give to community , it always returns us back. You learn, you teach, you inspire , you get inspired in the community. Everyone should participate in communities .

Which latest feature/features of Angular is/are the best because of developer experience? I almost love everything in Angular. While solving problem whatever Angular feature helps me I ďŹ nd that best. But to answer your question, I ďŹ nd data bindings, component communications, Change Detentions, Reactive Forms etc very powerful to solve real problems.

What do you do in your free time? I love to read and write poetry. I am a poet too.

ng-India 2019

|

BEHIND THE CODE MAGAZINE

13


INTERVIEW Pankaj Parkar Technical Lead, Synerzip

Yet another Angular Lover, right now working as Technical Lead at Synerzip. Mostly I had worked on AngularJS and Angular for more than 5 years, on the server side I've used MS stack. I'm extremely passionate about knowledge sharing. I contribute to the community by writing posts on StackOverow, speaking at public events and contributing to opensource. pankajparkar Why do you love programming? I believe programming is the only way by which we can command machines to do the tasks. These days we're trying to solve/solved real-world problems with technology which ultimately rely on Programming. I love programming because it is going to make difference in people's lives. It is an art and science where, there are no limitations to the imagination. Literally, I can think of anything and could develop application for the same. Did you start your career as a developer? What made you start programming? When I was pursuing my degree, I had inďŹ nite interest in computer hardware. Those days I've assembled a few personal computers as well. But later I got amazed to know the other side "Software". I was curious to know how things could have been made this software working magically. Somewhere between a search of "WHY & How software works"? I fell in love with Programming. Then I started my career as a Software Developer. 14

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW Pankaj Parkar

while(true) { this.keepLearning(); this.workLifeBalance(); } by Pankaj Parkar

What do you think about getting involved with the community? I believe the fact that "Knowledge shared is knowledge doubled". That's the reason I love to share my knowledge with the community via a different medium like StackOverflow, speaking at tech events, oss, etc. Also, I strongly believe in helping others by being their mentor and guide them to navigate to their desire.

Which latest feature/features of Angular is/are the best because of developer experience? Honestly, I like all Angular features, but here are few top rank features from my list. CLI - It helps to minimize development time, improves productivity. Ecosystem - Almost all API's comes out of the box with Framework like Compiler, Http, I18, etc. Saves the time of hunting third-party library, plus less decision making. Community - Huge community Dependency Injection - Provides an ability to write loosely coupled code, that can easily maintainable. Core Team - These guys are always making angular smaller and faster, moving angular to new horizon.

What do you do in your free time? Most of the free time I spend with my MacBook ؎working upon opensource, writing blog posts, StackOverflow posts, articles reading, etc. In addition to that, on weekends I spend quality time with my family and friends.

ng-India 2019

|

BEHIND THE CODE MAGAZINE

15


INTERVIEW Maxim Salnikov PWAdvocate

webmaxru

Maxim Salnikov is Oslo-based Web Full-Stack Engineer, a Google Developer Expert in Web Technologies & IoT, and a Microsoft MVP in Development Technologies. He architects complex web applications since the end of the last century and has extensive experience with all aspects of web platform focusing on the apps managing real-time data from IoT devices and Progressive Web Apps. Maxim is a founder and active contributor to two conferences: Mobile Era and ngVikings - Nordics’ main conferences for mobile and Angular developers respectively. Also, he leads Norway’s largest meetups dedicated to web front-end and mobile: Angular Oslo, Mobile Meetup, Oslo PWA. Maxim is passionate about sharing his web platform experience and knowledge with the community. He travels extensively for visiting developers events and speaking/training at conferences and meetups around the world.

16

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW Maxim Salnikov

The best learning is teaching by Maxim Salnikov

Why do you love programming? This is keeping my brain entertained Did you start your career as a developer? What made you start programming? I loved computers from my early ages, so becoming a developer was very natural move for me

What do you think about getting involved with the community? This is a must have for the web-developers. Technology develops so fast that only the continuous communication with the soulmates will keep you up to date. Plus, IT-people are the awesome folks to chat with!

Which latest feature/features of Angular is/are the best because of developer experience?

Angular Service Worker - main PWA automation tasks out-of-the-box

What do you do in your free time? I organize and speak at the conferences = I travel and communicate with many awesome people

ng-India 2019

|

BEHIND THE CODE MAGAZINE

17


ARTICLE

Browsers, not apps, are the future of mobile by Hugh Durkin A common refrain in discussions over the future of mobile is that “eventually, all mobile apps will be iOS or Android apps.” But many of these commentators have a vested interest in helping native mobile apps survive. Proclamations of an all-native mobile app world ignore the fact that browsers and the web are fast becoming the mobile operating system of the future, and native apps are slowly dying.

hughdurkin

Native apps are, of course, great at certain things. They’re great for frequent, heavy use tasks like communicating with friends, family, and colleagues – something we do multiple times a day, every day. Apps like Snapchat, WhatsApp, and Facebook Messenger need to access cameras, microphones, and the OS directly. So it makes sense for these types of apps to be native iOS and Android apps. But is there really a need for any other type of app to be installed natively? The mobile web, and browsers of today, can easily take care of almost everything we want to accomplish. Let’s not forget, native mobile apps were a short-term fix for short-term connectivity problems. In a 4G, wifi-everywhere world, those problems have all but disappeared.

18

BEHIND THE CODE MAGAZINE

|

ng-India 2019


ARTICLE

Hugh Durkin

We spend more time in mobile web browsers than we think It’s not just companies that are turning away from native apps – the average American now downloads zero apps per month. This has little to do with us spending time on phones – compare this app fatigue with the amount of time we’re spending in browsers. Everyone’s familiar with Firefox, Chrome, Safari, and Internet Explorer – “traditional” browsers with address bars, search functionality, and buttons to skip forward and backward. But they’re not the only browsers we use every day. We’re spending increasing amounts of time inside messaging apps and social networks, themselves wrappers for the mobile web. They’re actually browsers. And these browsers give us the social context and connections we crave, something traditional browsers do not. For example, Facebook is our browser for the social web. It makes it easy for us to browse through and discover the friends, businesses, and content we’re most likely to enjoy. Instead of having to “pull” content through traditional browsers, Facebook “pushes” content to us based on our interests and those of our friend networks. We’ve also seen a number of aesthetic shifts, with several new features to help Facebook’s iOS app approximate a real browser. Slack, meanwhile, is our browser for work. It makes it easy for us to discover documents, conversations, and data. In the past, we had to seek out the information we needed from our colleagues, and we’d miss out on information we didn’t know we needed. Today, our colleagues “push” documents and updates to us through browsers like Slack, making our work lives simpler and more integrated. According to comScore, users spend 50% of their app time in the most used app, and almost 80% in their top three apps.

source: comscore.com source: comscore.com

ng-India 2019

|

BEHIND THE CODE MAGAZINE

19


ARTICLE

Hugh Durkin

WhatsApp is our browser for close tie friend networks. Whether 1:1 or in small groups, we’re drip-fed content personalized to us, from our closest connections. These connections “push” content to us to browse and consume. We trust their recommendations – it’s the most personal way to browse the web. The above messaging apps are, of course, native apps. But critically they contain new functions that replace activities formerly performed in other native apps, or anywhere else for that matter. By offering a dizzying array of features thanks to millions of smart integrations by outside software developers, there is only very little need to ever leave these new types of browsers. In fact, these messaging and social browsers are so successful, we tend to only need three to discover, retrieve, and consume all the content we crave. No wonder Facebook, Google and many others are placing massive bets in this area. If you own the browser, you own the audience.

Bots, the new way to browse What’s so exciting about these new browser models is that so much is still in flux. Bookmarks were a core part of operating systems since the 1990s, represented by desktop icons and “start” menus. As we spent more time in desktop browsers, we relied on different, new types of bookmarks. We bookmarked web page urls and domain names. We installed toolbars to access services like MSN News, Google Search and Yahoo! Mail. We manually curated our own content. What we’re seeing on mobile is that bots are appearing as a new type of dynamic bookmark for mobile web browsers. Instead of going into the address bar, typing a url, and waiting to receive content every time, bots can push us the content as we need it. They can learn the content we’re most likely to engage with, and serve us more relevant content over time. They curate content for us. For example, take the “@music” feature in Telegram. It uses an inline keyboard that allows you to find and listen to music, without even sending any messages. And it updates its own messages on the fly as you flip through the pages of search results. So instead of a) a separate native mobile app (such as Spotify) or b) having to search and discover music in a browser such as Chrome, bots will be able to feed users full blown experiences that let them book reservations at restaurants or buy goods, without ever leaving their social or messaging apps. Over time, bots are a way for us to bookmark our interests and our behaviors. The content retrieved for us is actionable. We can book things and buy things. We can read things. The curation process is powered by our close friend networks and artificial intelligence.

20

BEHIND THE CODE MAGAZINE

|

ng-India 2019


ARTICLE

Hugh Durkin

What this means for tomorrow’s startups The web is and will always be the most popular mobile operating system in the world – not iOS or Android. It’s important that the next generation of software companies don’t focus exclusively on building native iOS or Android versions of existing web apps. Just make sure those web apps render and work well in the new wave of mobile browsers – messengers. Don’t build for iOS or Android just for an imaginary distribution opportunity. Distribution exists where people spend most of their time today – social and messaging apps, the new mobile browser for a bot-enabled world.

AUTHOR: Hugh Durkin @hughdurkin PUBLICATION DATE: October 31, 2016

ORIGINAL LINK: https://www.intercom.com/blog/browsers-not-apps-are-the-future-of-mobile/ source: comscore.com

ng-India 2019

|

BEHIND THE CODE MAGAZINE

21


INTERVIEW Jan-Niklas Wortmann RxJS Core Team

Jan-Niklas Wortmann is an IT consultant mostly working on Angular projects. He helps companies designing and implementing large scaled applications. Developing clean and maintainable code is one of his main goals. Additionally he is a member of the RxJS Core Team and organizer of the NgNiederrhein Meetup. nniklas_wortmann Why do you love programming? What I really love about programming is the collaboration and exchange with each other. Usually you work together with a team of like-minded. You are working together very tightly to share ideas and experiences. Programming doesn't care about borders or timezones, there is always a way to work together.

Did you start your career as a developer? What made you start programming? As teenager I played a lot of computer games. Originally I thought I would like to create games on my own and during my studies I tried it with some friends. For sure just for fun, it was far away from professional game development. In the meantime I already worked as software developer for a small it service provider. It was a very small one, so I was involved into projects directly from the beginning and I loved it!

22

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW

Jan-Niklas Wortmann

if( joy.shared() ) joy.double(); by Jan-Niklas Wortmann

What do you think about getting involved with the community? My ďŹ rst conference was NgEurope in Paris 2016. At this point of time, I didn't even know about all the amazing stuff happening in the community. I was really stunned by the spirit at such events. Discussing problems very openly and working together on problems with people you might get to know some minutes ago, was especially for me pretty amazing. I think with this kind of exchange everyone can heavily beneďŹ t on being part of a community.

Which latest feature/features of Angular is/are the best because of developer experience? It's not one of the latest features but I really appreciate 'ng add'. It's pure pleasure to add third party libraries and working with those to boost productivity and also the developer experience.

What do you do in your free time? I love playing board games and spend time together with friends. Besides that I really enjoy grilling. Preparing slow dishes, like pulled pork or spare ribs, which needs several hours of preparation, is a pure joy to me. And most of the time, the people I have invited also enjoyed it :)

ng-India 2019

|

BEHIND THE CODE MAGAZINE

23


INTERVIEW Katerina Skroumpelou Software Engineer

I’m a Google Developer Expert for Angular and Web Technologies, and a software engineer focused on the web front end. I like experimenting with new things, and I publish my code for the general good. I’m also an active member of the Angular family, I speak at international conferences and I’m the founder of the Angular Athens meetup. I try to support diversity in the community in any way I can.I live in Athens with my Maine Coon. psybercity

Did you start your career as a developer? What made you start programming? As teenager I played a lot of computer games. Originally I thought I would like to create games on my own and during my studies I tried it with some friends. For sure just for fun, it was far away from professional game development. In the meantime I already worked as software developer for a small it service provider. It was a very small one, so I was involved into projects directly from the beginning and I loved it! aMy dream, since the early years of high school, was to study computers and electronic engineering. Even though I finally chose not to get a degree in electronic engineering, I relied mostly on my devotion to learn to code and heavily to the people who believed in me and supported me during my first attempts at a career in technology and programming. The greatest challenge was to believe in myself and have a specific and clear goal to keep me going. Once I knew exactly what I wanted to achieve (and that was to become a programmer) there was nothing that could stop me, at least from putting all my efforts to it.

24

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW

Katerina Skroumpelou

if (this === for_me) 'do it' else 'skip it'; by Katerina Skroumpelou

What do you think about getting involved with the community? I think that it's very rewarding. And it's also very valuable. You get to meet new people, discuss similar issues, and see that you're not alone in the problems that you're facing. You also get to inspire new people to join you.

Why do you love programming? Because it's very creative. It gives me the feeling of creating something new, of solving a problem, and I have a great feeling of reward when I reach my goal.

What do you do in your free time? In my free time I take walks, I travel, and I read sci-ďŹ books.

ng-India 2019

|

BEHIND THE CODE MAGAZINE

25


INTERVIEW Michael Hladky Trainer / Consultant

Michael is a developer, trainer and consultant with the focus on Angular and is located in Vienna, Austria. He gives workshops on Angular, RxJs. He is a Google Developer Expert and founder of the Angular-Austria association and AngularVienna meetup. Michael_Hladky Why do you love programming? Being creative without the need of physical things like pen and paper Did you start your career as a developer? What made you start programming? Curiosity

What do you think about getting involved with the community? I consider community and OOS as the foundation for building software

26

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW Michael Hladky

while(curios) { isLearningPossible = true; } by Michael Hladky

Which latest feature/features of Angular is/are the best because of developer experience? Angular CLI add and update commands

What do you do in your free time? Dancing or just hanging out with people i like

ng-India 2019

|

BEHIND THE CODE MAGAZINE

27


INTERVIEW Siwat Kaolueng Part-time Angular Developer at 7 Peaks Software / Angular Thailand Organizer / Angular & Web Enthusiast

const stopLearning = Rx.Observable.never(); by Siwat Kaolueng

Siwat is the Angular & Web enthusiast who passionating front-end architecture. He has experienced in enterprise softwares such as bank and energy companies. He also organize Angular Thailand Meetup. perjerz3434

Why do you love programming?

Programming is the most powerful tool in order to accomplish something with the minimum afford. We can build most of everything by just using our hand and brain. A-ha moment is the best feeling, and we feel that when we make the program work. (but don't know why ¯\_(ツ)_/¯ lol) Did you start your career as a developer? What made you start programming? Yes I did start as a developer. When I was the high school, I have played some online game called SA-MP. The owner of server invite me to help him develop his game. It was the the tipping of my life that I started know the programming. I spent most of free time with developing game mod. It was about 1 year. It has shaped my logic stronger. Finally, I applied to Computer Engineer as a Bachelor Degree. 28

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW

Siwat Kaolueng

What do you think about getting involved with the community? Involving the community is the best moment. I have learned so many thing from others people. It is not only a technical skill but it is also a soft skill. We can develop our communication skills by giving a talk or teaching others. We can also spent our time with the open sources, we will learn the techniques or pattern. It will accelerate your learning rate.

Which latest feature/features of Angular is the best because of developer experience? CLI is a tool that convenience you to scaffolding the boilerplate code so as to let you focus on the developing the feature. It is a "convention over conďŹ guration". TypeScript is also help developers to reduce time of reading implementation detail by just watching type annotation. It also deduct human-errors such as typo and catch bug before runtime. RxJS is a programming in asynchronous mindset which will be powerful after you understand it. RxJS lets you write less code (less reading, less time) in declarative (focusing on result instead of implementation). (It likes Fourier Transform to transform time domain into frequency domain to do operation more easily). Some opinionatedness of Angular help developers to focus on real app rather than arguing which library suit to our project (Router, Form). In enterprise softwares, they have several teams. They normally want consistency to reduce cost (communication, time).

What do you do in your free time? I do read books and watch videos including softwares, self-development, business and technology trends. I hangout with my friends. I also play some PC FPS game.

ng-India 2019

|

BEHIND THE CODE MAGAZINE

29


CONFERENCE DETAILS Ng-India's delegates and attendees are coming from 25 different countries

30

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW Nishu Goel Software Developer

A developer who loves to read and loves people DcoustaWilson Why do you love programming? Programming makes you feel you have the power to change anything you like to Did you start your career as a developer? What made you start programming? Yes. Just started my career :p and Yes as a Developer. What do you think about getting involved with the community? Lovely! Nothing can be better than this since you remain close to people and keep up-skilling and growing.

ng-India 2019 |

What do you think, which latest feature of Angular is the best because of developer experience? When CLI asks if need to add routing and Drag & Drop feature. What do you do in your free time? Read books and explore places

BEHIND THE CODE MAGAZINE

31


ARTICLE

Angular & SPAs by Nishu Goel I was scrolling through questions on stackoverflow and saw a lot of people questioning if Angular applications are SPAs (Single-page applications) or what are SPAs. Hope this blog post will contain the information required to understand what this actually means. To start with, let us try to comprehend the meaning of the term Single-page applications. We have evolved from the time when we used websites involving a number of HTML pages interlinked. However, it reduced to fewer and fewer and then what what came to be used as Single page applications. SPAs can be implemented with smaller number of files whereas this won’t be the same case with the interlinked HTML files. One major plus of using SPAs is that it does not need to download every page every time from the server. It just downloads the index.html and rest happens on the client side. If we inspect the main page of any of the websites based on SPAs, we will see that the first page to download is the index.html one and there is no need to download all the pages one by one from the server.

For example, when we inspect the home page of the website of ng-India, we see that the page that gets loaded first is the index.html page. 32

BEHIND THE CODE MAGAZINE

|

ng-India 2019


ARTICLE

Nishu Goel

The concept of SPAs sounds fancy! But how does it work? You might be wondering that we load very little HTML from the server, with the data that is present at that time. What about the data that is added later. how does that get updated every time in a single page application! To do this, browser needs to change the data into HTML every time. That is a very logical question! The answer to that can be obtained by comparing these applications to those traditional server-based applications. The rendering of data which used to be done on the server-side has a different approach with SPAs. With SPAs, the data to HTML transformation is done on the client-side. Yes, you heard it right. The SPA-friendly browsers have something like a template engine running in them which makes the rendering part much faster and easier. Now, the data won’t need to be loaded from the server every time.

Why do we need Angular for SPA? Or do we not? The answer to this is No! We do not always need Angular to create SPAs but let us understand why Angular comes into picture then! When we are putting in a lot of data into one web-page with the aim of creating a single-page application, the program becomes very complex and is not driven by HTML but JavaScript in that case. The code becomes very complex and then to handle such complex functions, Angular jumps in. Now we will not look at our application as a set of static pages with a lot of data in them, instead, we understand it as a complex program which needs to use all the tools required for a Development project using a typed language like Typescript. Another very important thing to put light on, here, is that we do not need Angular to create a SPA because the website is a SPA but because the website is a complex program with a lot of code and complex functions in it. An easy-way of understanding this can be by saying that a non-SPA is actually nothing but a list of many SPAs. Many single-page applications comprise to form a Single-page application. To summarize, the advantages of using a SPA are: -Easier to deploy in Production -Server to serve a minimum of 3 files—single page index.html, a CSS bundle, a JS bundle. -Faster page refreshes and no full-page refreshes occur. One major downside of using an SPA is that not all browsers are SPA-friendly as they suffer from indexing a single page application correctly. To solve this problem, browsers use AJAX Crawling or Progressive enhancement which is not in the scope of this blog post.

ORIGINAL LINK: https://nishugoel.wordpress.com/2019/01/23/angular-spas/ ng-India 2019

|

BEHIND THE CODE MAGAZINE

33


INTERVIEW Anchal Bhandari Software Developer

A technology enthusiast who love to code, crazy about angular. I love connecting with people, talk about technology, deliver speaches on them and then travel in my remaining time. Why do you love programming? It's so cool to see the web pages looks so beautiful and cooler when you realize you have made it. I get a feeling of accomplishment while I code. I always try to make my day productive, and coding just plays an integral part of it.

bhandariaanchal

Did you start your career as a developer? What made you start programming? Like any B.Tech student, I was involved in lot of projects. I was very comfortable in Java, I could think in Java. This probably directed me to be a developer. Then entering into my ďŹ rst job, I was asked to work on angular, which started making me complete because now I can create an end to end application. So this pushed me more into learning and developing. What do you think about getting involved with the community? I feel so obliged already to be speaker for this community. I would love to be involved more as part of core team . I am passionate about organizing such events and working to make it a sure success.

34

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW

Anchal Bhandari

if(you.happiness>0)this.life = ''perfect' else this.happiness = '1' // P.S. : never leave happiness in your life. by Anchal Bhandari

What do you think about getting involved with the community? I feel so obliged already to be speaker for this community. I would love to be involved more as part of core team . I am passionate about organizing such events and working to make it a sure success.

Which latest feature/features of Angular is the best because of developer experience? There are many new features in Angular. I have been so much comfortable when I started incorporating Flex in angular. I realized how much better the application looks . It add scalablity in terms of resolutions

What do you do in your free time? I have become a blogger off-late. I write blogs in my free time. My blog: http://wordpress.com/block-editor/page/bhandariaanchal.wordpress.com. Apart from this, I love reading books. Generally, I try that I travel and while traveling, I read books and if possible sip hot chocolate :-P.

ng-India 2019

|

BEHIND THE CODE MAGAZINE

35


INTERVIEW Brecht Billiet Co-founder at StrongBrew

concat(...toLearn).subscribe(i => teach(i)); by Brecht Billiet

Brecht is a trainer, blogger and software engineer passionate about architecture and best-practices. Brecht uses the technologies that he teaches in his workshops on a daily basis in different projects. One of his main activities is kickstarting new Angular projects in companies and guiding them in the right direction. Why do you love programming? brechtbilliet

I love it when the pieces of the puzzle are starting to fall in place and because every small unit has its own responsibility and is written properly, everything starts to work as expected

What do you think, which latest feature of Angular is the best because of developer experience? I love how one angular.json ďŹ le can represent a complete monorepo with ngPackagr integration. Using this in combination with Lerna makes it easy to create an huge angular utilkit that can be shared across an entire organisation

Did you start your career as a developer? What made you start programming? I've been developing websites since I was 15 years old What do you think about getting involved with the community? I love contributing to the community by writing blogposts. The community is a great way to learn from each other

36

BEHIND THE CODE MAGAZINE

|

What do you do in your free time? Hitting the gym to stay focussed. I love to grill and cook outside

ng-India 2019


INTERVIEW Ajay Prabhakar Barokar Angular Developer

while( this.yesterdayYou > this.todayYou) this.todayYou += improve; by Ajay Prabhakar Barokar

Angular developer who likes to code and contribute to angular community. Why do you love programming? I am passionate about it. It has literally changed my life. Did you start your career as a developer? What made you start programming? I have started my career as a developer. It was best part of my entire educational life from High school to post graduation.

What do you think about getting involved with the community?

What do you think, which latest feature of Angular is the best because of developer experience? Opt-in Ivy Preview. will be coming in Angular8 which will have below advantage : Generated code that is easier to read and debug at runtime Faster re-build time Improved payload size (Real world applications should see some size improvements, but many more improvements are planned) Improved template type checking Great backwards compatibility ng-India 2019 . |

ajaypbarokar

Community helps you grow. You can always learn and share which in turns grows your knowledge.

What do you do in your free time? Spend some quality time with my friends and family. Hangout with google god. Do workout in the Gym to stay healthy.

BEHIND THE CODE MAGAZINE

37


INTERVIEW Suguru Inatomi Angular geek in Japan

I'm a front-end developer with a love to open web technologies. Also I'm an Angular geek and a community leader respecting opensource culture. I run Angular Japan User Group to help Angular users in Japan and grow entire Angular community. I also lead an ofďŹ cial localization project for Angular documents in Japanese, https://angular.jp. To share the knowledge gained via contributing, I talk about Angular at many events and writes articles in Japan. laco2net Why do you love programming? It's very logical. Always there is cause-and-effect. And it can help a lot of people with a few developer's effort, beyond the time or place.

Did you start your career as a developer? What made you start programming? My programming was started for a game. When I was 15 y-o, I was a player of Minecraft, and I wanted to make a "MOD" to make it more fun. I wrote a MOD for customize Minecraft and share it for other people as OSS and I translated modding knowledges into Japanese. As a result, Japanese MOD creator community has been grown and there are many awesome MODs made by Japanese today. Through that experience, I had felt happiness for helping other developers in open source culture. That's my starting point.

38

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW Suguru Inatomi

if (wannaDo(thing) && canDo(thing)) { do(thing) } by Suguru Inatomi

What do you think about getting involved with the community? Community is an important place for helping each other. Sometimes I can help other people and sometimes I can get help by other people, too. If you want to learn new technology, the community is helpful for your ďŹ rst step. And later, you can help next beginner. I think its "mutual aid" spirit is the core of the community.

Which latest feature/features of Angular is/are the best because of developer experience? Angular CLI is growing fast to become a help for much more usecases. Supporting separated polyďŹ ll for es5 browsers is very useful feature. The additional value of that is it has been achieved by cooperating with a library from the community. It's very great ecosystem.

What do you do in your free time? Reading articles, watching videos, writing posts, and of course playing games.

ng-India 2019

|

BEHIND THE CODE MAGAZINE

39


ARTICLE

Google Play Store now open for Progressive Web Apps by Maximiliano Firtman Chrome 72 for Android shipped the longawaited Trusted Web Activity feature, which means we can now distribute PWAs in the Google Play Store! I played with the feature for a while, digging into the APIs and here you have a summary of what’s going on, what to expect and how to use it today.

PWAs can now play in the Store

firt

Chrome 72 for Android is now shipping from the Play Store to all users and this version included Trusted Web Activity (TWA), that in a nutshell is a way to open Chrome in standalone mode (without any toolbar or Chrome UI) within the scope of our own native Android package. Let me start saying that the publishing process is not straightforward as it should be (such as “enter your URL” in the Play Console and it’s done.) It’s also not a way to use the currently available WebAPK and publish it in the store. It’s a Java API that communicates through services with Chrome and seem to be in the early stages, so there is a lot of manual work to do yet today. I see this as the first step and I’m sure better tooling will appear soon (maybe from the community) using these now available APIs to create a one-click to store mechanism. But with the current API, it’s possible to ship a PWA’s launcher. I will share my experience in this article for everyone interested. 40

BEHIND THE CODE MAGAZINE

|

ng-India 2019


ARTICLE Maximiliano Firtman

Why publishing a PWA in the store? Is the Web Platform, Max! Why do we want to use the Store? Well, it’s a long discussion, but I’ve been doing consulting with small and big companies for years, and when talking about PWA investment, the store is a recurrent demand. “My users will look for my app in the Store”, “I already have a native app that I want to stop doing, but I don’t want to lose my users”, “I need to access a native API”, or “I want to monetize my PWA.” From now, publishing your PWA in the Store -as well as from the browser- will be possible. Of course, it’s an opt-in operation. The Play Store is not emulating the Microsoft Store: your PWA won’t be listed in the store if you don’t compile your own APK, and publish it.

Advantages over standard PWA installation Despite the new distribution mechanism and people finding your app within the store (and even in Google’s search under “Apps”), there are some things we may be able to do with a PWA in the Store, such as: -Offer a Home Screen Widget -Offer App Shortcuts (when you long press the app’s icon) and other deep integrations with the OS -Offer a wear OS companion app or Android Auto extension Be re-installed after a hard reset or a backup restore on a new phone -Have background services accessing native features (communication with the PWA is still limited—more on this later) -Monetize the App—limited today, more on this later -Have some native screens mixed with PWA content -Distribute more than one PWA icon in the Launcher and/or home screen pointing to different URLs (within the same host) -Better internationalization support

What’s new here? In Google Play Store there are already some PWAs published such as Google Maps Go, Instagram Lite or Twitter Lite. The first one is using some kind of a private pre-TWA version, and the last two are using a WebView that while not ideal, it was the only way to do something like this before TWAs. These apps are adding a lot of native code for some things such as notifications. We want to publish PWAs as web developers, we don’t want to write a lot of Java code. TWA is a special mode on Chrome Custom Tabs, a solution available to native Android apps from Chrome 45 to open an In-App browser.

source: comscore.com

ng-India 2019

|

BEHIND THE CODE MAGAZINE

41


ARTICLE Maximiliano Firtman

Is TWA a Hybrid framework, similar to Cordova? No. With Cordova or other hybrid solutions, you are typically shipping your web resources (HTML, JS, CSS, etc.) within your APK package. Also, the engine is different and isolated from the users’ browser, so no session or cache sharing. With Trusted Web Activity you don’t need to package any resource file from your PWA (only native components, in case you want them); all your resources will be downloaded and updated on the fly from your Service Worker. Your PWA will still be rendered with the installed Chrome version, sharing all storage, cache, and sessions with the browser. Therefore, if your user has a session on your website opened when the user installs the app from the Play Store, she will still be logged in. The user is just installing a shortcut to Chrome using a special mode.

Play Store approval requirements The URL you use for the Trusted Web Activity must comply with: -Passing the PWA Criteria (typically today: HTTPS, a Service Worker with a fetch event handler, and a Web App Manifest with a 512px icon, a background_color, and basic other properties set.) -Performance Score with a minimum of 80/100, tested with Lighthouse (available in Chrome Dev Tools, or as an NPM CLI.) -All current Google Play Store rules.

Security Model of PWAs in the Google Play Store Your PWA will run under the browser’s security model, not under your native app one— unless you add native code as well to your APK. Because the Activity will be managed by Chrome, the user should we aware that even if she has just installed the app, she might have session data, local storages and permissions already set for that host. Also, when the user uninstalls the app from the Application’s Manager, we will get a warning stating that app’s state and data is still available while in Chrome, so she should clear cache as well if needed. That includes, for example, the Web Push permission, so even if the user uninstalls the app, the app can still send push notification messages.

Development options For creating an Android Package using TWA we will first need Android Studio. Right now, the options available are kind of experimental and documented only with some open source examples in the Chrome GitHub repository.

42

BEHIND THE CODE MAGAZINE

|

ng-India 2019


ARTICLE Maximiliano Firtman We can develop apps with TWA: -Using a high-level Java Support Library provided by the Chrome team: in this case, you don’t need to write any Java or Kotlin native code; you create an Android Studio project (or clone the example), set up some metadata in AndroidManifest.xml from your Web App Manifest and you are done. The framework will provide the connection with TWA and optional abilities to create a Settings entry in the Android device and to make Web Push notifications available. The framework is currently available as a support library in a temporary Jitpack repository. I guess that’s not going to be the final location for this library in the future. -Using the Trusted Web Activity manually. If you have experience developing Android apps with Java or Kotlin, you can just plug your PWA manually into your app. That means you can have some native activities and at one point you can open the Trusted Web Activity with your PWA. In this case, I suggest analyzing the Support Library to understand how to connect to Chrome from your project.

Spreading the Manifest & URL Validation A PWA in the App Store won’t use the Web App Manifest for defining how your app runs; we will need to copy some of those values manually. TWAs will work only if we digital handshake our domain with our app. This is a mechanism known as Digital Assets Links. That will make a trusted relationship between your host and your APK, proving that you are the owner of the PWA and that you won’t be publishing PWAs in the Play Store that you don’t own. It also makes a digital link between your website and your native app that in theory can let them share private data (but doesn’t seem to be possible with today’s TWA API).

Publishing your App To publish your PWA shortcut using TWAs you will need to follow all the Google Play Store rules. Check the Developer Policy Center for more information. You will also need a Developer Publisher account paying a one-time fee of USD $25 and create metadata, screenshots and marketing material for your app.

Deployment When you are done creating your APK (Android Native Package) from Android Studio and you already have a Developer Console account, you must create a production APK and sign it with a self-created key that you create within Android Studio tools. You might also want to check App Signing by Google Play to simplify the process in the future. AUTHOR: PUBLICATION DATE:

Maximiliano Firtman (@firtman)

31.01.2019

https://medium.com/@firt/google-play-store-now-open-forsource: comscore.com ORIGINAL LINK: progressive-web-apps-ec6f3c6ff3cc

ng-India 2019

|

BEHIND THE CODE MAGAZINE

43


INTERVIEW Kwinten Pisman Founder and mentor at Strongbrew

I am a frontend architect focussed on Angular with a reactive passion. Ever since I discovered (functional) reactive programming I've been sold and trying to spread to word about this amazing technology. I do this through blogposts, training sessions with the company I cofounded called Strongbrew, talking at conferences and organising a meetup. KwintenP Why do you love programming? I'm triggered by doing things that aren't easy. I like every day to be different and not having to do the same over an over again. I like to be challenged and use all of the brain capacity that I have to search for a solution to a problem. And to me, that's what programming is all about. It's about ďŹ nding elegant solutions for though problems. It's about constantly learning new things and applying it on a daily basis. I just love it! Did you start your career as a developer? What made you start programming? I rolled into programming out of pure luck. I had a friend that was going to study computer sciences and as I was unsure what I wanted to do, I decided to join him. I immediately fell in love with programming during the very ďŹ rst lectures and haven't stopped since!

44

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW

Kwinten Pisman

if(you.areInComfortZone) this.getOutOfComfortZone(); by Kwinten Pisman

What do you think about getting involved with the community? I think the Angular community is one of the reasons that I really like it. I try to help by regularly blogging, speaking at conferences and meetups and organising a Javascript related meetup. I just love how you can just send a tweet to almost everyone and chances are high that they'll reply!

Which latest feature/features of Angular is/are the best because of developer experience? I am still a huge fan of the @angular/cli. I've had to create and setup a build process, linting, typescript compilation, ... for projects before I was using the CLI and everyone knows that it takes a lot of effort and expertise to get it right (which is probably one of the reasons I didn't get it right :) ). The fact that you can extend the CLI with builders in the latest versions is something that I really like and have used in previous and current project(s).

What do you do in your free time? All my free time goes to my two wonderful kids, Elena and Dennie. They are the light of my life.

ng-India 2019

|

BEHIND THE CODE MAGAZINE

45


INTERVIEW Marta Wisniewska Front-end Developer at Cosmose, PWA enthusiast

I'm an Angular Developer and passionate about web development, PWA and hybrid apps. I am a coauthor of PWA Fire ( pwafire.org ) an open source project that allows you to build the progressive web apps. I'm also a member of GDG Warsaw. I love to participate in conferences, meetups and all the events where you can meet amazing people and share your knowledge. MartaW_PL Why do you love programming? Well, programming allows you to create anything you want. All you need is code. This is a kind of abstract thinking in which everything is logical, structured, each line of code makes sense, and the whole creates something super awesome. That's why I love IT :) Did you start your career as a developer? What made you start programming? When I was at high school someone told me that programming is so difficult. I tried to find studies where there was no need to code and I started the Power Engineering studies. But fortunately, I had Computer Science in my first semester. Then I spent a lot of time learning C programming language and I loved it <3. I've decided to take a second major field - Computer Science. In my Bachelor thesis, I mixed Power Engineering and Computer Science and I developed a web app for a wind farm. That was my last adventure with Power Engineering. Now, I'm a regular Front-end Developer :)

46

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW

Marta Wiśniewska

if (you.optimism) happiness.find(1); by Marta Wiśniewska

What do you think about getting involved with the community? Work with the community is wonderful! You meet amazing people and learn a lot. It make you motivated, inspired and truly happy.

Which latest feature/features of Angular is/are the best because of developer experience? I really like schematics. It's a nice tool to automate developer's work. Your one line in CLI has never been such powerful before Angular 6 :)

What do you do in your free time? I love running, gym, dancing and travelling <3

ng-India 2019

|

BEHIND THE CODE MAGAZINE

47


INTERVIEW Ankit Sharma Senior Software Engineer

Hello everyone, My name is Ankit. I am a software engineer currently working with IVY Comptech in Hyderabad, India. I acquired Bachelorâ&#x20AC;&#x2122;s degree in Computer Science from Siddaganga Institute of Technology, Tumkur (Karnataka) in 2014. I have over 4 years of extensive experience in Microsoft technologies including C#, ASP.NET, SQL Server and UI technologies such as JQuery and Angular. I am a technical author and speaker and loves to contribute to technical community. I writes articles for multiple platforms, which includes c-sharpcorner, Dzone, Medium and TechNet Wiki. For my contribution to the developerâ&#x20AC;&#x2122;s community, I have been recognized as csharpcorner MVP, Dzone MVB and Top contributor in Technology at Medium.

ankitsharma_007

Why do you love programming? Programming is an art. You create something that millions of people use worldwide. This make me feel proud and gives an immense pleasure. Did you start your career as a developer? What made you start programming? Yes, I started my career as a developer. I was always intrigued by the ways computer programs works. I always wanted to know "behind the scene" for softwares. That's why i choose the career as a developer. 48

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW

Ankit Sharma

while(true){ writeCode(); helpCommunity(); } by Ankit Sharma

What do you think about getting involved with the community? I believe that being a tech enthusiast it is our responsibility to share the knowledge with others. Contributing to community is a great way to share your expertise. It helps in your personal as well as professional growth. You connect with new people, explore new technologies, expand your knowledge and most importantly your article/code can help a developer sitting miles away from you.

Which latest feature/features of Angular is/are the best because of developer experience? The Virtual scrolling feature introduced with Angular 7 is awesome. The fact that It will render only the items that can ďŹ t on the screen enhances the application performance thus providing a great user experience.

What do you do in your free time? In my free time I read blogs about latest technology. I also contribute to community in form of OSS and articles.

ng-India 2019

|

BEHIND THE CODE MAGAZINE

49


ARTICLE

Localization In Angular Using i18n Tools by Ankit Sharma In this article, we will learn how to make our Angular app available in different languages using i18n and localization. We will create an Angular application and conďŹ gure it to serve the content in three different languages. We will also deploy our app to Google Firebase and see how localization works in real time.

What is i18n? I18n , also known as internationalization is the process of making our app support various languages to extend the reach to a worldwide audience.

What is Localization? Localization is the process for translating the app to a particular language. We need to apply internationalization to the application and after that we can localize it. Localization allows us to serve our application in different languages.

Source code Get the source code for this application from GitHub: https://github.com/AnkitSharma-007/angular-i18n-localization

Creating an Angular 7 app The ďŹ rst step is to create an Angular 7 app. Run the following command to create the app: ng new i18nDemo

50

BEHIND THE CODE MAGAZINE

|

ng-India 2019


ARTICLE Ankit Sharma

Setting up the app component Open the i18nDemo app using VS code. Open app.component.html file. Replace the already existing text with the following code:

You can observe that we have marked <h1> and <h3> tags with i18n attribute. This is a way to tell the Angular to consider this text as translatable content. We will explore i18n attribute in details in the next section.

Creating a translation source file Run the following command in the CLI to create a translation source file: ng xi18n --output-path translate It will create a folder called translate and create a messages.xlf file inside it. Open the file and you can observe the following XML code inside it.

source: comscore.com

ng-India 2019

|

BEHIND THE CODE MAGAZINE

51


ARTICLE

Ankit Sharma

This file contains a list of <trans-unit> tags. These tags will have all the content that was marked for translation using i18n attribute. You can also observe that each <transunit> tag has an id property associated with it. This unique id will be generated by default for each tag that was marked with i18n attribute. We can also customize the id by providing a name prefixed with @@ as we have done with <h3> tag in previous section. Hence, the id for <h3> tag is “myName” as we defined it. There is no entry for the <p> tag in translation file because we have not marked it with i18n attribute. Angular translation tool will not consider it for translations. If you change the text for any tag in your HTML file, you need to regenerate the translation file. Regenerating the file will override the default id of <trans-unit> tags. Hence, it is advisable to provide custom ids to each translatable tag to maintain consistency. Hence, we have successfully implemented i18n to our app. In the next section, we will extend it to make it available to different languages.

Translating the content We will translate our application in two new language apart from English, which are Spanish and Hindi. Make three copies of the messages.xlf file and rename them to messages.en.xlf, messages.es.xlf and messages.hi.xlf. These file names can be customize as per your choice but the extension should be .xlf. Open messages.es.xlf and put in the following content in it.

52

BEHIND THE CODE MAGAZINE

|

ng-India 2019


ARTICLE

Ankit Sharma

This is the same content as the original messages.xlf file, but we have added a <target> tag corresponding to each <source> tag. The <target> tag contains the translated text for the content inside the <source> tag. Here I am using Google translate for the translation but in real time applications, a language expert will translate the contents from messages.xlf file. Similarly open the messages.hi.xlf and put in the following content in it.

Finally, we will make English translation file. Open messages.en.xlf and put in the following content in it.

source: comscore.com

ng-India 2019

|

BEHIND THE CODE MAGAZINE

53


ARTICLE

Ankit Sharma

Configure the app to serve in multiple language Open angular.json file and add the following configuration.

Here we have added the configuration for Spanish language. We have provided the path and format for i18n file and set the locale to “es”. When we execute the application, app content will be served from the i18n file path provided. Similarly you can add configuration for other languages.

Execution Demo Once you have added the configuration for all the languages in angular.json file, run the following command to start the server. ng serve --configuration=es This will launch the application in “es” configuration and our app will show the Spanish language translations. Refer to the output screen as shown below:

54

BEHIND THE CODE MAGAZINE

|

ng-India 2019


ARTICLE

Ankit Sharma

The configurations that we have defined will only help the app to run in the local machine. We cannot change the configuration once the app is launched. A production app will need the application to serve for different language just by changing the URL. e.g. mywebsite.com/es will provide the Spanish version of site and mywebsite.com/en will provide the English version. In this case, the app will be served from different virtual directories for different language. We will explore how to do this in next section.

Modify the app component for production Open app.component.ts and put in the following code.

Here we have defined a list of languages and its locale code. These locale codes are standard codes. You can easily get a list of language and the corresponding locale code by a simple Google search. Add the following codes in app.component.html file.

Put the following code in app.component.css file to apply styles to these buttons.

source: comscore.com

ng-India 2019

|

BEHIND THE CODE MAGAZINE

55


ARTICLE

Ankit Sharma

Script to compile the app for production We need to have three different serving location for three different languages. To build the application package for one language for production we will use the following command: ng build --prod --i18n-locale es --i18n-format xlf --i18n-file src/translate/messages.es.xlf --output-path=dist/es --baseHref /es/ Let us understand this command. We provided the locale id for package, which is “es” for Spanish. We also provide the i18n file path and format. The output path property is required to provide the location for application package. The baseHref property specifies the base URL from which this package will be served. We need to run this command for every language we will provide by changing the i18n file path and baseHref attribute values. However, this will be a cumbersome task if we have a lot of languages. Therefore, we will write a script to generate package for all language. Open package.json file and add the following scripts inside the “scripts” section.

Here we have created three scripts for three languages we are using. The “build-locale” script will execute all of them at once. All these scripts are key-value pairs. The key names we are using here are customizable and you can use any name of your choice. To create the application package for all the language, run the following command: npm run build-locale

On successful execution, it will create a “dist” folder in the application’s root folder. The dist folder has three sub-folders to serve our application in three different languages. Refer to the image shown below:

56

BEHIND THE CODE MAGAZINE

|

ng-India 2019


ARTICLE

Ankit Sharma

Deploying the application on Firebase We will deploy this application on Firebase to see the language change in real time. Once the application is deployed, you will get the hosting URL. Open the URL and append the baseHref attribute as we deďŹ ned earlier, to the URL. Hence, the URL will be yoursite.com/es/ for Spanish language and so on. The application, which we built here, is hosted at https://i18ndemo-415ef.ďŹ rebaseapp.com/en/. If you open this URL, you will see the output as shown below:

Click on the links provided. The URL will change and application will reload in new language.

Conclusion We learned how to internationalize our Angular app using i18n tools. We also applied localization to Angular application. Localization allows us to serve our app in different language, which helps in extending the reach to a worldwide audience. We learned how localization works in a production environment by deploying our application on Firebase. Get the source code from GitHub and play around for a better understanding.

source: comscore.com

ng-India 2019

|

BEHIND THE CODE MAGAZINE

57


INTERVIEW Zackary Chapple Principal Architect, GDE, Conference Organizer

Can you introduce yourself? Like who are you and what do you do? I help establish organizational strategy and development best practices for frontend development at Ultimate Software. zchapple

Why do you love programming? Programming literally changed my life. Before getting into IT I was delivering Chinese food for a living and could not afford to put gas in my car.

Did you start your career as a developer? What made you start programming? When I switched to IT I started in helpdesk and eventually transitioned into Java development. I was coached into it by a mentor who saw a debugging ability through my help desk work.

58

BEHIND THE CODE MAGAZINE

|

ng-India 2019


INTERVIEW

Zackary Chapple

People don't buy what you do, they buy why you do it by Zackary Chapple

What do you think about getting involved with the community? I think we all have a responsibility to give back to the community. How much we give back is a personal decision, but we should all take a few moments to help those around us.

Which latest feature/features of Angular is/are the best because of developer experience? I'm a huge fan of what's coming with Angular Elements. This will help get more of our legacy apps updated.

What do you do in your free time? I love cooking and spending time with my 4 children.

ng-India 2019

|

BEHIND THE CODE MAGAZINE

59


PREVIOUS PUBLICATIONS Check out the online archives of Behind the Code Magazine published by NG Poland:

Behind The Code Magazine #2 ngPoland 2018

Behind The Code Magazine #1 ngPoland 2017

See more: https://issuu.com/ngpoland

Profile for ngPoland

Behind The Code Magazine #3  

Behind The Code Magazine #3 - ng-India edition

Behind The Code Magazine #3  

Behind The Code Magazine #3 - ng-India edition

Profile for ngpoland
Advertisement