<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: DevFestNYC</title>
    <description>The latest articles on Forem by DevFestNYC (@devfestnyc).</description>
    <link>https://forem.com/devfestnyc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F31%2F58a99e3e-bc5f-41cf-b745-d06d76193486.jpg</url>
      <title>Forem: DevFestNYC</title>
      <link>https://forem.com/devfestnyc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/devfestnyc"/>
    <language>en</language>
    <item>
      <title>#1 Coding Fearlessly: Origin Story</title>
      <dc:creator>Nitya Narasimhan, Ph.D</dc:creator>
      <pubDate>Thu, 02 Nov 2017 18:12:56 +0000</pubDate>
      <link>https://forem.com/devfestnyc/1-coding-fearlessly-origin-story-4g</link>
      <guid>https://forem.com/devfestnyc/1-coding-fearlessly-origin-story-4g</guid>
      <description>&lt;p&gt;&lt;em&gt;This is the first of a series of posts where I will explore the Firebase platform in all its splendor, touching upon the good, the bad, and the “OMG what happened! aspects that make it, in my opinion, a worthwhile tool to add to your dev toolbelt.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Background
&lt;/h3&gt;

&lt;p&gt;Let’s start at the very beginning. Actually let’s not. Let’s just jump in.&lt;/p&gt;

&lt;p&gt;This is the first of a series of planned and unplanned-but-serendipitously-interesting posts that I want to write, to cover the full scope of &lt;strong&gt;Firebase&lt;/strong&gt; , the platform that started off as a real-time database but has since evolved into a one-stop-shop catering to all the serverless computing needs of mobile &amp;amp; web developers. And that is both a blessing and a curse.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Blessing&lt;/strong&gt; is that, as tech advances rapidly, we as developers &lt;em&gt;need&lt;/em&gt; these kind of turnkey solutions and delegation-of-management patterns that can help us focus more attention on &lt;em&gt;crafting unique, fulfilling user experiences&lt;/em&gt; instead of spinning our cycles writing, rewriting or managing a lot of the complexity that is required on the server sideâ€Š–â€Šbut which is often unseen or unappreciated by the consumer.&lt;/p&gt;

&lt;p&gt;And because much of this complexity stems from common underlying needsâ€Š–â€Šlike authentication, storage, databases, hosting, analytics, payments, performance monitoring, testing, scalability etc.â€Š–â€Šit actually lends itself well to the &lt;em&gt;backend-as-a-service (BaaS)&lt;/em&gt; model. The commonality can be abstracted away into API-based services that can be invoked easily from client-side codeâ€Š–â€Šand the process further simplified by standard client-side libraries that are maintained by the BaaS provider, ensuring they are reliable &amp;amp; up-to-date with changing or evolving service features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Curse&lt;/strong&gt; is that these platforms provide a non-trivial set of services but it is not always clear when, how, or why, you need them. Are they really necessary or are we falling for the old-fashioned upsell? What if, using a pharmaceutical analogy, we wanted the brand name service for some featureâ€Š–â€Šinstead of the bundled-in generic that is provided by the BaaS? Is that viable? Does that add complexityâ€Š–â€Šand if so, what are the tradeoffs? And finally, &lt;em&gt;will I be making an irreversible decision?&lt;/em&gt; In other words, does committing to this platform put me on the path of increased dependency on a technologyâ€Š–â€Šsuch that if, or when, it is deprecated (or worse, sunset-ed), I am not effectively left up the creek without a paddle. Let’s be clear. There is no such thing as risk-free technologyâ€Š–â€Šrather the discussion here is more about timeframes for obsoleteness, and pathways for migration or mitigation as the ecosystem evolves.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Goals&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;First,&lt;/strong&gt; was my motivation to write a series of articles that explored this space. The target audience was, in fact, me. I’ve found that writing things down helps me see the gaps in my own understandingâ€Š–â€Šand that teaching others helps me see the gaps in the relevance or applicability of those ideas to diverse contexts. But I could never find time to do this just &lt;em&gt;because life!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt; , I am passionate about teaching others, and it occurred to me that having this be a series of articles could effectively come in handy if I were to want to create trails or pathways for students in my “FirebaseCamp events to explore on their own later. In that context, I specifically wanted to highlight the term “ &lt;strong&gt;fearless coding_._&lt;/strong&gt; Too often I have found that adults, perhaps some more than others, underestimate their abilities and overanalyze their failures because of self-image issues that are often a product of popular culture and not reality. I happen to have been one of them.&lt;/p&gt;

&lt;p&gt;I was afraid to admit I didn’t know many thingsâ€Š–â€Šafter 20+ years in tech, it was hard to say “&lt;em&gt;I am not a CS major, I have an ECE backgroundâ€Š–â€Šand most of what I know was self-taught so I have gaps in my knowledge or understanding of foundational things”&lt;/em&gt;. It was easier to say “&lt;em&gt;Sure, I know that.”&lt;/em&gt; and then pay the price in late nights of studying &amp;amp; innumerable hours of painful debugging to figure it out on my ownâ€Š–â€Šrather than just ask for help. Here’s the awesome truth thoughâ€Š–â€Šonce you accept that you don’t know something, you find that an incredible load is off your shoulders and you feel freer to ask questions &lt;em&gt;and actually learn more productively&lt;/em&gt; than before. &lt;strong&gt;Yes, just saying “I don’t know so TELL me is incredibly empowering and liberating at the same time!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hence the focus on &lt;strong&gt;Fearless Coding.&lt;/strong&gt; In this series I am going to say, do and share whatever I know. And when I am wrongâ€Š–â€Šand I will be, many times overâ€Š–â€ŠI hope people will correct me, educate me, and help me refine those sections so our collective understanding improves. &lt;em&gt;The important thing is that I now have incredible belief in my ability to learn, understand &amp;amp; apply ideas and I want to help everyone else get to that point of positive self-esteem without fear.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third&lt;/strong&gt; , tech moves so fast that sometimes ideas, APIs or tools become obsolete in a matter of months, as new revisions or competitive alternatives emerge. And so this is also meant to be a &lt;em&gt;living document&lt;/em&gt;â€Š–â€Ša place where I can come back and update sections as things change, to reflect current best practices. And also have it serve as a repository of &lt;em&gt;code snippets&lt;/em&gt; that describe frequently-used code patterns or quick-lookup method invocation examples, that I can repurpose in my personal and professional projects built with Firebase.&lt;/p&gt;

&lt;h3&gt;
  
  
  Outcomes
&lt;/h3&gt;

&lt;p&gt;Alright, great. So where do I go from here? I want to write articles and have goals for doing thisâ€Š–â€Šbut how do I incentivize myself? And what is the endgame?&lt;/p&gt;

&lt;p&gt;Glad you asked.&lt;/p&gt;

&lt;p&gt;November is National Novel Writing Month (NaNoWriMo). And if there is one thing my recent #30Days foray into habit-forming behaviors showed me, it is that setting goals/routines can get you further towards a desired outcomeâ€Š–â€Ševen if you might fall short or have to revise estimates along the way.&lt;/p&gt;

&lt;p&gt;And so here goes. I am committing to writing my series of articles with the intent of putting them together into a single “novel by December 1.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F909%2F1%2AkDIdn5Sd803z-JPq56FlTA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F909%2F1%2AkDIdn5Sd803z-JPq56FlTA.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The focus in November will be to just start getting content in there as articles. I can come back later and finesse the content, update it to be more visual, rearrange or otherwise group things together to form sub-topics etc. It will be raw content but it will be a a start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wish Me Luck!&lt;/strong&gt;&lt;/p&gt;




</description>
      <category>studycamp</category>
      <category>firebase</category>
      <category>serverless</category>
      <category>nanowrimo</category>
    </item>
    <item>
      <title>Day 1: Exploring #AndroidThings</title>
      <dc:creator>Nitya Narasimhan, Ph.D</dc:creator>
      <pubDate>Mon, 07 Aug 2017 02:28:40 +0000</pubDate>
      <link>https://forem.com/devfestnyc/day-1-exploring-androidthings-6i9</link>
      <guid>https://forem.com/devfestnyc/day-1-exploring-androidthings-6i9</guid>
      <description>&lt;p&gt;&lt;em&gt;Reporting on my first day of #FearlessCodingâ€Š–â€Šfor more about that see&lt;/em&gt; &lt;a href="https://dev.to/devfestnyc/30days-of-fearless-coding-temp-slug-9463444"&gt;&lt;em&gt;this post&lt;/em&gt;&lt;/a&gt;&lt;em&gt;â€Š–â€Šand what I explored today..&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So its 10:20 pm and I have a 4:00 am start so consider this a placeholder to be filled in with details on what I worked on today. With 2 hours of commute time tomorrow, I should be able to update this with more details.&lt;/p&gt;

&lt;h4&gt;
  
  
  Focus: Android Things
&lt;/h4&gt;

&lt;p&gt;So I decided to focus on AndroidThings for my first fearless coding adventure. Two reasons why.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I am hosting the &lt;a href="https://www.meetup.com/gdgnyc/events/234963772/"&gt;GDG NYC meetup&lt;/a&gt; tomorrow focused on this topic and this seems a good time to get my feet wet, given there will be a few experts and ideas around tomorrow, for me to kick things up a notch later this week.&lt;/li&gt;
&lt;li&gt;I have always shied away from hardware. Its stupid but the reason is that software always felt more &lt;em&gt;flexible&lt;/em&gt; and &lt;em&gt;safe&lt;/em&gt; to work with. I lived in eternal fear of “bricking” my expensive hardware board or peripheral by doing something without understanding all the implications or knowing all the underpinning concepts. But that is exactly what fearless coding is meant to overcome right? &lt;em&gt;Am I curious about this space?&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Check.&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;Am I going to persist and keep going till I build something?&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Abso-betcha-lutely!&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;And am I going to share my mistakes as I learn?&lt;/em&gt; &lt;strong&gt;&lt;em&gt;I kinda think that will be the norm not the exception here :-)&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Where I’m at:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AndroidThings exploration requires &lt;a href="https://developer.android.com/studio/index.html"&gt;AndroidStudi&lt;/a&gt;o and some &lt;a href="https://developer.android.com/things/training/first-device/create-studio-project.html"&gt;dependencies installed&lt;/a&gt;as pre-requisities. I am currently running the updates on the background on this machine. I am already tearing my hear out as AndroidStudio spits out ominous messages about being unable to patch some things … &lt;em&gt;hmmm.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;AndroidThings exploration requires a compliant &lt;a href="https://developer.android.com/things/hardware/developer-kits.html"&gt;Developer Board&lt;/a&gt; and optional &lt;a href="https://developer.android.com/things/hardware/developer-kits.html#featured_peripherals"&gt;Peripheral Kits&lt;/a&gt;. I had purchased an Intel Edison board and peripherals kit earlier from Sparkfun, and have an AndroidThings-compliant kit using Raspberry Pi 3 from Adafruit. And then I happened to pick up an NXP Pico kit from IO 2017. So I am ready with that bit..&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Hopefully the software installs will complete tonight and I can get to work on image downloads (to dev boards) and setting up for my first project tomorrow..&lt;/p&gt;

&lt;p&gt;Till then .. &lt;em&gt;bonne nuit ..&lt;/em&gt;&lt;/p&gt;

</description>
      <category>raspberrypi</category>
      <category>androidthings</category>
      <category>thingscamp</category>
    </item>
    <item>
      <title>#30Days of Fearless Coding</title>
      <dc:creator>Nitya Narasimhan, Ph.D</dc:creator>
      <pubDate>Sat, 05 Aug 2017 15:49:28 +0000</pubDate>
      <link>https://forem.com/devfestnyc/30days-of-fearless-coding-33f</link>
      <guid>https://forem.com/devfestnyc/30days-of-fearless-coding-33f</guid>
      <description>&lt;p&gt;If you’re been in the tech industry as long as I have, you’re probably familiar with the term &lt;em&gt;impostor syndrome&lt;/em&gt;â€Š–â€Ša behavior that, not surprisingly, is often experienced by women and minorities in tech.&lt;/p&gt;

&lt;p&gt;By definition, impostor syndrome is ..&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;a concept describing high-achieving individuals who are marked by an inability to &lt;a href="https://en.wikipedia.org/wiki/Internalisation_(sociology)" rel="noopener noreferrer"&gt;internalize&lt;/a&gt; their accomplishments and a persistent fear of being exposed as a “fraud” …. Proof of success is dismissed as luck, timing, or as a result of deceiving others into thinking they are more &lt;a href="https://en.wikipedia.org/wiki/Intelligent" rel="noopener noreferrer"&gt;intelligent&lt;/a&gt; and competent than they believe themselves to be&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The issue here is in perception of self. And this nagging fear that one is not good enough, smart enough or competent enough, to belong in the role or position you are inâ€Š–â€Šwhether that is as a developer, public speaker, manager or advisor.&lt;/p&gt;

&lt;p&gt;None of us are immune to it. And while recent coverage of this issue has resulted in a spate of self-improvement articles like &lt;a href="https://www.fastcompany.com/40421352/the-five-types-of-impostor-syndrome-and-how-to-beat-them" rel="noopener noreferrer"&gt;this one from Fast Company&lt;/a&gt; (&lt;em&gt;The five types of impostor syndrome .. and how to beat them&lt;/em&gt;) the reality is that at its core, it’s about overcoming your fear of being judged by othersâ€Š–â€Šand being confident enough about yourself to be vulnerable and open about what you don’t know.&lt;/p&gt;

&lt;p&gt;And with every passing day, as I read more narratives and stories about the bias and challenges faced in trying to grow diversity &amp;amp; inclusion tech, I am reminded again how important it is to &lt;strong&gt;not succumb to this fear of not being good enough to belong in tech.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is unmitigated bull. Nobody has the right to tell you that you don’t belong in tech. We are all minorities somewhere. And if someone brings passion, perseverance and a good work ethic to any industryâ€Š–â€Š &lt;strong&gt;recognize and amplify them&lt;/strong&gt; instead of feeling insecure or actively undermining that effort. &lt;em&gt;A rising tide lifts all boats.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And when I feel myself giving in to any kind of doubts, I take a minute to look at this picture and remind myselfâ€Š– &lt;strong&gt;â€Šbehind every so-called “expert” lies a string of failures that paved the way to get to &lt;em&gt;that&lt;/em&gt; point where they can make success looks easy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-888580617297854468-124" src="https://platform.twitter.com/embed/Tweet.html?id=888580617297854468"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-888580617297854468-124');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=888580617297854468&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;It is the failures &lt;em&gt;and the subsequent persistence to keep going&lt;/em&gt; that makes them expertsâ€Š–â€Šnot that final result. And so, my hope is that in everything I doâ€Š–â€Šwhether it is in building products or communitiesâ€Š–â€ŠI willingly embrace the failures as a vital part of getting to expertise. It is not easy, but I plan to try.&lt;/p&gt;

&lt;p&gt;And so, this begins my &lt;strong&gt;#30Days&lt;/strong&gt; challenge to be a fearless coder. If you want to learn about the &lt;em&gt;30 days challenge&lt;/em&gt; check out the TED talk from Matt Cutts!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/media/463d6337590c78f435c242e297f88dc7/href" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;a href="https://medium.com/media/463d6337590c78f435c242e297f88dc7/href" rel="noopener noreferrer"&gt;https://medium.com/media/463d6337590c78f435c242e297f88dc7/href&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  About Fearless Coding
&lt;/h3&gt;

&lt;p&gt;For the next 30 days I am going to dive into learning a few new technologies or concepts that I have always wanted to explore more but didn’t feel I had sufficient expertise to talk about. This ranges from conversational UI/UX and machine learning, to embedded systems and IoTâ€Š–â€Štopics that I have explored as a hobbyist but that I hope to use in building real-world products.&lt;/p&gt;

&lt;p&gt;My goal is to write something every day for 30 days, sharing what I did or learntâ€Š–â€Ševen if it is just something fairly trivial. And I hope that each post will showcase what I feel are the three key behaviors of fearless coding&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Curiosity:&lt;/em&gt;&lt;/strong&gt; Expertise in any realm often begins with a simple question of “why” or “how”, which leads to exploration, which unveils challenges, which then hopefully leads to innovation and experience. I genuinely believe that as long as we feed our curiosity, we will often find that our minds don’t have much idle room left in them for hate or negativity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Persistence:&lt;/em&gt;&lt;/strong&gt; Expertise comes from practice. Lots of it. We all lead fast-paced multi-tasking lives and many times it feels like there isn’t sufficient time to dedicate to the kind of practice that builds perfection. And my goal is to try to do something each day to keep myself focused. Chances are there will be lapsesâ€Š–â€ŠI have a lot on my plate. So I am arming myself with lots of forgiveness and reminding myself to just have fun with it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Vulnerability&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;.&lt;/em&gt; Perhaps the most important one of all. I am going to make a point of sharing &lt;em&gt;my mistakesâ€Š&lt;/em&gt;–â€Šin other words, I want to share the piles of broken plates even as I try to get to that point where I make juggling look effortless. In particular, I am going to assume that the only reader of this “journal” is me. And in that context, I want to document it in a way that I recall honestly, and that I can revisit later, to improve on that understanding with advanced insights ..&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And so we begin …&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dear Future Me …&amp;gt; what have you committed yourself to? If you come revisit this later, I hope you feel proud that you took this step! Onwards!&lt;/p&gt;


&lt;/blockquote&gt;

</description>
      <category>impostorsyndrome</category>
      <category>thingscamp</category>
      <category>30daychallenge</category>
      <category>learning</category>
    </item>
    <item>
      <title>AndroidThings &amp; IoT Recap</title>
      <dc:creator>Nitya Narasimhan, Ph.D</dc:creator>
      <pubDate>Sat, 08 Jul 2017 16:29:22 +0000</pubDate>
      <link>https://forem.com/devfestnyc/androidthings--iot-recap-b87</link>
      <guid>https://forem.com/devfestnyc/androidthings--iot-recap-b87</guid>
      <description>&lt;p&gt;&lt;em&gt;The Android Things team&lt;/em&gt; &lt;a href="https://android-developers.googleblog.com/2017/06/android-things-hackster-community.html?hl=be" rel="noopener noreferrer"&gt;&lt;em&gt;held a webinar today&lt;/em&gt;&lt;/a&gt; &lt;em&gt;to spotlight two key resources for IoT developers: the&lt;/em&gt; &lt;a href="https://developer.android.com/things/index.html" rel="noopener noreferrer"&gt;&lt;em&gt;Android Things platform&lt;/em&gt;&lt;/a&gt; &lt;em&gt;&amp;amp; the&lt;/em&gt; &lt;a href="https://www.hackster.io/google" rel="noopener noreferrer"&gt;&lt;em&gt;Hackster.io community&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-883341813867847680-788" src="https://platform.twitter.com/embed/Tweet.html?id=883341813867847680"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-883341813867847680-788');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=883341813867847680&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is a quick recap of what we learnt at from that call. The talk was tapedâ€Š–â€Šfollow&lt;/em&gt; &lt;a href="https://medium.com/u/149ee411aa42" rel="noopener noreferrer"&gt;&lt;em&gt;GDG New York City&lt;/em&gt;&lt;/a&gt; &lt;em&gt;to get notified if the video is publicly shared.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is IoT?
&lt;/h3&gt;

&lt;p&gt;There is a lot of hype, but also a lot of opportunity, in the domain being referred to as the &lt;strong&gt;Internet of Things (IoT)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;At its core, the IoT vision involves connecting physical objects to the Internet, enabling an ecosystem of digital services that can be powered by the data generated from these objects (&lt;em&gt;context sensing&lt;/em&gt;) or be used to control them &lt;em&gt;(actuation)&lt;/em&gt; remotely via mobile or web apps. Gartner predicts these “intelligent things” will be a key strategic technology in 2017.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.gartner.com/smarterwithgartner/gartners-top-10-technology-trends-2017/" rel="noopener noreferrer"&gt;Gartner's Top 10 Strategic Technology Trends for 2017 - Smarter With Gartner&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While IoT is often used to talk about products in the consumer industry (smart home, wearables, autonomous vehicles), the &lt;em&gt;Industrial IoT (IIoT)&lt;/em&gt; segment is gaining momentum in the enterprise with a focus on using machine learning, connectivity and big data to tackle challenges in health, safety and efficiency in industries like agriculture and mining.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.forbes.com/sites/louiscolumbus/2016/11/27/roundup-of-internet-of-things-forecasts-and-market-estimates-2016/#4ce97093292d" rel="noopener noreferrer"&gt;Roundup Of Internet Of Things Forecasts And Market Estimates, 2016&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Analysts estimates differ but the general consensus is that the number of IoT-enabled “things” will reach ~30B devices by 2020 with a multi-billion dollar consumer market and a multi-trillion dollar enterprise market in IIoT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;So what are the opportunities and challenges for the IoT app developer?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The opportunities lie in areas like service automation, fitness, collaborative computing, real-time tracking/alerts, remote control and quantified self, to name just a few. New areas for exploration include wearables, smart toys, autonomous vehicles and education.&lt;/p&gt;

&lt;p&gt;The challenges lie in tackling security and data privacy concerns, managing complexity in deploying apps to diverse hardware and software platforms, dealing with regulatory approval, and integrating frictionlessly into existing application ecosystems for growth and monetization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;This is where the AndroidThings vision comes in.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is AndroidThings?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://developer.android.com/things/index.html" rel="noopener noreferrer"&gt;Android Things | Android Things&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AndroidThings is Google’s initiative to support development and innovation for the Internet of Things ecosystem.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;All figures below were screenshots from the webinar and have been used for illustration only. All errors in explanations are mine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F609%2F1%2AgNl5u0H2i6dVQbWBrZ4Gcg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F609%2F1%2AgNl5u0H2i6dVQbWBrZ4Gcg.png"&gt;&lt;/a&gt;Core value proposition&lt;/p&gt;

&lt;p&gt;At its core it offers three value propositionsâ€Š–â€Šbringing the reach of the Android ecosystem to IoT, delegating the complexity of hardware management to Google (and allowing developers to focus on building custom hardware extensions and rich software experiences), and leveraging the trusted security solutions provided out-of-the-box by Google.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Power of Android.&lt;/strong&gt; This takes two forms. First, application developers can embrace familiar languages (Java, Kotlin) and tools (Android Studio) for faster development. Second, they can leverage frictionless integration with other Google services (Play, Firebase, Cloud) to get comprehensive solutions with built-in support for monetization, serverless computing and big data analytics.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1002%2F1%2AH733xVsfmhnioG1tEIUSWQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1002%2F1%2AH733xVsfmhnioG1tEIUSWQ.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Managed By Google.&lt;/strong&gt; Google manages the complexity of low-level hardware, Linux kernel and Android core components of the stack. Updates (e.g., for security or feature upgrades) get pushed out to devices automaticallyâ€Š–â€Šyou, as developer, need to manage only updates to your apps and any user-level drivers you have added to the platform.&lt;/p&gt;

&lt;p&gt;Not only does this allow developers to quickly scale their products to new devices, but it also reduces the time/cost otherwise spent in oversight efforts instead of product improvements. The new addition of an &lt;a href="https://partner.android.com/things/console/u/0/" rel="noopener noreferrer"&gt;AndroidThings Console&lt;/a&gt; allows developers to review deployment versions and potentially get usage insights and administrative support in future.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Google advocates mentioned that they are actively continuing to add drivers and libraries to support new/popular boards, sensors &amp;amp; accessoriesâ€Š–â€Šhave one you want to see supported?&lt;/em&gt; &lt;a href="https://plus.google.com/communities/107507328426910012281" rel="noopener noreferrer"&gt;&lt;em&gt;Post an “ask” to their IoT Community&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F657%2F1%2A3gaUT0BSjDCJ8HDe2xr87Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F657%2F1%2A3gaUT0BSjDCJ8HDe2xr87Q.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Automatic And Secure.&lt;/strong&gt; Standard security practices like signed images and verified boot are provided by default. Not only are software updates and security patches proactively pushed out, but their &lt;strong&gt;A/B Rollback Protection&lt;/strong&gt; feature ensures this happens with minimum downtime.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Patches are downloaded and installed in the background, and the devices rebooted when optimal, to have them take effect. If any issues occur during this update, the process is setup to automatically roll back to the last stable image, ensuring that your deployed hardware or software solution is never left in an unavailable state.&lt;/p&gt;

&lt;h3&gt;
  
  
  Turnkey Hardware Support
&lt;/h3&gt;

&lt;p&gt;As someone who isn’t familiar with low-level embedded systems architecture or software, this aspect of AndroidThings was appealing. Effectively anyone can get started by using an &lt;a href="https://developer.android.com/things/hardware/index.html" rel="noopener noreferrer"&gt;AndroidThings certified development board&lt;/a&gt; that uses a &lt;a href="https://en.wikipedia.org/wiki/System_on_module" rel="noopener noreferrer"&gt;System-on-Modules (SOM) architecture&lt;/a&gt; to abstract complexity and promote rapid composability at the hardware level. Learn more about&lt;a href="https://developer.android.com/things/hardware/developer-kits.html" rel="noopener noreferrer"&gt;the supported hardware platforms here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SoM Architecture:&lt;/strong&gt; As I understand it, SoM is analogous to how software frameworks abstract complexity of underlying operating systems; as a developer you simply stack the relevant SoM on the baseboard to get a desired hardware platform for rapid prototyping &amp;amp; test. When you finally want to build/release production hardware, you can optimize the design by reusing those modules in a single PCBâ€Š–â€Šensuring that the end result is consistent with no changes needed to your higher-level software layers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F678%2F1%2AjkOgIAUHJmt0raK9Pi0CYQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F678%2F1%2AjkOgIAUHJmt0raK9Pi0CYQ.png"&gt;&lt;/a&gt;&lt;em&gt;Image Credit: &lt;/em&gt;Screenshot from “IoT Bootstrapping with Android Things”Â Webinar&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Google Managed BSP:&lt;/strong&gt; Google maintains the BSP (&lt;a href="https://en.wikipedia.org/wiki/Board_support_package" rel="noopener noreferrer"&gt;Board Support Package&lt;/a&gt;) ensuring the device is updated with the latest software and security patches with minimal developer effort required. This makes it easier for developers who don’t have embedded systems experience, to deploy new IoT solutions with confidence and focus their attention on software at the apps level.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simplified Certification and Testing&lt;/strong&gt;. All modules Google support are pre-certified for various regulatory or industry testing standards. Once you have prototyped an IoT solution, taking it to market requires you to overcome the regulatory hurdles associated with hardware deployment. Because Google-supported modules are pre-certified, your time/cost for product-readiness is now significantly reduced.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does the platform look like?
&lt;/h3&gt;

&lt;p&gt;It helps to first understand what the &lt;strong&gt;standard&lt;/strong&gt; Android Development platform looks like. The default architecture builds on a Linux operating system and associated native libraries (for efficiency and abstraction), over which are stacked the Android Application Framework (high-level, reusable services/components) and core Android Applications (high-level, popular apps) both of which have primarily served a consumer market focused on interactive user experiences.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F674%2F1%2AeiukYp_RGiIRFDdxeuvI6Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F674%2F1%2AeiukYp_RGiIRFDdxeuvI6Q.png"&gt;&lt;/a&gt;&lt;em&gt;Standard Android Architecture (Image Credit: &lt;/em&gt;“IoT Bootstrapping with Android Things”Â Webinar)&lt;/p&gt;

&lt;p&gt;The AndroidThings architecture &lt;em&gt;“scrubs” [&lt;em&gt;[_like a “Brillo” pad&lt;/em&gt;](&lt;a href="http://www.androidpolice.com/2016/12/13/googles-brillo-internet-things-platform-now-android-things-developer-preview-available-download/" rel="noopener noreferrer"&gt;http://www.androidpolice.com/2016/12/13/googles-brillo-internet-things-platform-now-android-things-developer-preview-available-download/&lt;/a&gt;)&lt;/em&gt;]_ the standard architecture down to make it more suitable for the resource-constrained IoT platforms. It does this in two ways. First, it eliminates the default Android Applications (which targeted interactive users) and parts of the Framework (that are not relevant to “headless” or display-less devices). Second, it also provides IoT-ready versions of other components that remain compatible with the usage/behaviors expected by Android developers but are optimized for more resource-constrained hardware.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F675%2F1%2A7Wygjt0XWjo_90aay5krqw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F675%2F1%2A7Wygjt0XWjo_90aay5krqw.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It also adds a new &lt;em&gt;Peripheral Driver Library&lt;/em&gt; to the platform, targeted primarily at supporting better interfacing of applications with the low-level interfaces afforded by sensors and actuators. The library connects popular peripherals to the Android applications layer through &lt;em&gt;User Driver APIs&lt;/em&gt;â€Š–â€Šwith pre-written drivers available for most common peripherals. The Peripheral Driver Library is open-sourced and has various samples to get your startedâ€Š–â€Š&lt;a href="https://developer.android.com/things/sdk/driver-library.html" rel="noopener noreferrer"&gt;read more about it here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F638%2F1%2A80bMOsQkcYDdCa76cmphEg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F638%2F1%2A80bMOsQkcYDdCa76cmphEg.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources &amp;amp; Next Steps:
&lt;/h3&gt;

&lt;p&gt;Where can you go to learn more? We recommend you do the following first:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Follow&lt;/em&gt;&lt;/strong&gt; Developer Advocates: &lt;a href="https://medium.com/u/c91ac3b63127" rel="noopener noreferrer"&gt;Dave Smith&lt;/a&gt; &amp;amp;&lt;a href="https://medium.com/u/b0d0b1a4ba7" rel="noopener noreferrer"&gt;Wayne Piekarski&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Join&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://www.meetup.com/gdgnyc/" rel="noopener noreferrer"&gt;Google Developer Group NYCâ€Š&lt;/a&gt;–â€Š&lt;a href="https://www.meetup.com/gdgnyc/events/234963772/" rel="noopener noreferrer"&gt;AndroidThings&lt;/a&gt; meetup in Aug&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Explore&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://codelabs.developers.google.com/?cat=IoT" rel="noopener noreferrer"&gt;Google Developers Codelabsâ€Š–â€ŠIoT &amp;amp; AndroidThings&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Watch&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://www.youtube.com/playlist?list=PLOU2XLYxmsIIUtQeTRlRoDCdncUpWnR4M" rel="noopener noreferrer"&gt;Android Things @Google IO 2017â€Š–â€ŠYouTube Playlist&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll update this section with more resources (and a link to the webinar recording when we have it) but here are resources worth bookmarking for repeat visits &amp;amp; assistance (with clickable links for image below)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.android.com/things/index.html" rel="noopener noreferrer"&gt;Android Things SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.hackster.io/google" rel="noopener noreferrer"&gt;Hackster.io Community&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plus.google.com/communities/107507328426910012281" rel="noopener noreferrer"&gt;Google IoT Developers G+ Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F717%2F1%2AHh5gsBnTeliWUjjX2dYJzQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F717%2F1%2AHh5gsBnTeliWUjjX2dYJzQ.png"&gt;&lt;/a&gt;&lt;/p&gt;




</description>
      <category>androidthings</category>
      <category>internetofthings</category>
      <category>development</category>
      <category>google</category>
    </item>
    <item>
      <title>Road to #PWACamp / Programming</title>
      <dc:creator>Nitya Narasimhan, Ph.D</dc:creator>
      <pubDate>Thu, 06 Jul 2017 15:25:52 +0000</pubDate>
      <link>https://forem.com/devfestnyc/road-to-pwacamp--programming-5ef</link>
      <guid>https://forem.com/devfestnyc/road-to-pwacamp--programming-5ef</guid>
      <description>&lt;p&gt;On Jul 22, 2017, we will be running the first &lt;em&gt;Study Camp&lt;/em&gt; event focused on Progressive Web Apps (PWA) through the Google Developer Group NYC, hosted at General Assembly in New York.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;You can find out more about the agenda on&lt;/em&gt; &lt;a href="https://pwacamp2017.splashthat.com/" rel="noopener noreferrer"&gt;&lt;em&gt;our event page&lt;/em&gt;&lt;/a&gt; &lt;em&gt;and&lt;/em&gt; &lt;a href="https://generalassemb.ly/education/progressive-web-apps-camp/new-york-city/39343" rel="noopener noreferrer"&gt;&lt;em&gt;purchase tickets to attend it here&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Use the promo code pwa-30 to get a 30% discount for a limited time.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is the 2nd installment of a series of articles focused on PWA in the days leading to #PWACamp. You can read the &lt;a href="https://dev.to/devfestnyc/road-to-pwacamp--principles-temp-slug-9933302"&gt;first article here&lt;/a&gt;â€Š–â€Šand also find a listing of the entire series there as it progresses.&lt;/p&gt;

&lt;h3&gt;
  
  
  #PWACamp Session 2: Programming
&lt;/h3&gt;

&lt;p&gt;Understanding the concepts is important, and having tools and libraries to facilitate development is criticalâ€Š–â€Šbut as a developer, &lt;em&gt;how do you get started?&lt;/em&gt; This is the focus of the second segment of our camp, and something that we hope to elaborate on a bit here.&lt;/p&gt;

&lt;p&gt;At a high level, we want to support two kinds of learning behaviors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Breadth First.&lt;/em&gt; This is for developers who are interested in exploring these concepts with code, but not necessarily tied to a specific framework or build process. In such cases, what would be the simplest way to start exploring ideas with code without having to worry about build processes, deployment options and development environment setup?&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Depth First.&lt;/em&gt; This is for developers who are working with a specific front-end technology and interested in understanding how they can integrate PWA capabilities into their apps, or audit existing apps for compliance. In such cases, the real focus is on getting some hands-on experience with the libraries/tools and workflow specific to that front-end.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 2-hr &lt;em&gt;Programming&lt;/em&gt; segment effectively allows you to pick your own adventureâ€Š–â€Šyou will hear about two possible options in the &lt;em&gt;instructor-led&lt;/em&gt; segment, and then explore those (or other alternatives) through hands-on codelabs in the &lt;em&gt;self-guided&lt;/em&gt; segment, with the help of our on-site mentors. The two talks in this segment are:&lt;/p&gt;

&lt;h3&gt;
  
  
  Building With Glitch
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://glitch.com/about/" rel="noopener noreferrer"&gt;Glitch&lt;/a&gt; is the &lt;em&gt;friendly community where you will build the app of your dreams&lt;/em&gt;. Built by the amazing folks at FogCreek, Glitch is effectively a cloud-based “sandbox where you can edit, build and deploy your web apps in one platform, right from the browser.&lt;/p&gt;

&lt;p&gt;More importantly, you can learn by remixingâ€Š–â€Šsimply look for example apps that provide specific features or leverage specific APIs, and then remix it to create a custom version that helps you better understand the underlying concepts. Learn about their vision here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F960%2F0%2AJwaTdeaUvo1kkrSY." class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F960%2F0%2AJwaTdeaUvo1kkrSY."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.twitter.com/pketh" rel="noopener noreferrer"&gt;Pirijan (@pketh)&lt;/a&gt;, Dev/Designer on Glitch team, will speak at #PWACamp about how Glitch works &amp;amp; how you can “remix existing PWA examples.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;PWA On Glitch:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Glitch has some PWA examples already available today that might be good places to start for a “Remix”. Take a look at these examples from our other #PWACamp speakers @kosamari and &lt;a class="mentioned-user" href="https://dev.to/jeffposnick"&gt;@jeffposnick&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-842452473281429505-333" src="https://platform.twitter.com/embed/Tweet.html?id=842452473281429505"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-842452473281429505-333');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=842452473281429505&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-842672030054928384-163" src="https://platform.twitter.com/embed/Tweet.html?id=842672030054928384"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-842672030054928384-163');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=842672030054928384&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Or this simple PWA demo from &lt;a href="https://medium.com/u/a7bf6b8f7cd0" rel="noopener noreferrer"&gt;Paul Kinlan&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-868863913588379648-718" src="https://platform.twitter.com/embed/Tweet.html?id=868863913588379648"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-868863913588379648-718');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=868863913588379648&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h3&gt;
  
  
  Building PWA with Angular
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://angular.io/" rel="noopener noreferrer"&gt;Angular&lt;/a&gt; is amongst the first frameworks to embrace &lt;em&gt;declarative&lt;/em&gt; coding of web apps with composability, testability and performance as core tenets. In Angular 2.x, &lt;a href="https://angular.io/features" rel="noopener noreferrer"&gt;Progressive Web Apps are core to cross-platform support&lt;/a&gt;, making it arguably the most popular PWA-ready web app option today.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://medium.com/u/5b925f0e218b" rel="noopener noreferrer"&gt;Michael Solati&lt;/a&gt;, GDG New Haven Organizer &amp;amp; Full-Stack Dev, will walk us through building a PWA with Angular at #PWACamp.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Want to learn more about how you can build great PWA experiences with Angular? Check out this talk from Google IO, then bring your laptop and come prepared to follow-along with Michael, or do a self-guided codelab.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/videoseries"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;And check out the Angular Mobile Toolkit: &lt;a href="https://mobile.angular.io/" rel="noopener noreferrer"&gt;https://mobile.angular.io/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Building PWA with other frameworks
&lt;/h3&gt;

&lt;p&gt;But what if you are already working with a different production framework? Maybe that’s React? Or Vue? Or Polymer? Or Backbone? Not a problem.&lt;/p&gt;

&lt;p&gt;Come to #PWACamp where we will have a set of resources available for you to start exploring development with any front-end frameworkâ€Š–â€Šyou will have mentors to help with existing codelabs plus a chance to ask your questions on PWA adoption from both members of the Google Chrome &amp;amp; DevRel teams as well as industry experts.&lt;/p&gt;

&lt;p&gt;Watch this space for more resource links.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://codelabs.developers.google.com/io2017?cat=Web" rel="noopener noreferrer"&gt;Google IO 2017 Codelabs&lt;/a&gt;â€Š–â€Šwith numerous codelabs updated for the latest features and tools. We’ve identified a few useful ones below.&lt;/li&gt;
&lt;li&gt;Codelab: &lt;a href="https://codelabs.developers.google.com/codelabs/your-first-pwapp/index.html?index=..%2F..%2Fio2017#0" rel="noopener noreferrer"&gt;Your First Progressive Web App&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Codelab: &lt;a href="https://codelabs.developers.google.com/codelabs/migrate-to-progressive-web-apps/index.html?index=..%2F..%2Fio2017#0" rel="noopener noreferrer"&gt;Migrate your site to a PWA&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Codelab: &lt;a href="https://codelabs.developers.google.com/codelabs/polymer-firebase-pwa/index.html?index=..%2F..%2Findex" rel="noopener noreferrer"&gt;PWA with Polymer &amp;amp; Firebase&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://medium.com/dev-channel/create-react-pwa-7b69425ffa86" rel="noopener noreferrer"&gt;Create-React-App with PWA&lt;/a&gt;â€Š–â€Š@jeffposnick &lt;a href="https://twitter.com/sco/status/864936332866367489" rel="noopener noreferrer"&gt;PR was merged&lt;/a&gt; in May 2017&lt;/li&gt;
&lt;/ol&gt;




</description>
      <category>progressivewebapp</category>
      <category>pwacamp</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Road to #PWACamp / Principles</title>
      <dc:creator>Nitya Narasimhan, Ph.D</dc:creator>
      <pubDate>Wed, 05 Jul 2017 15:55:21 +0000</pubDate>
      <link>https://forem.com/devfestnyc/road-to-pwacamp--principles-eh</link>
      <guid>https://forem.com/devfestnyc/road-to-pwacamp--principles-eh</guid>
      <description>&lt;p&gt;On Jul 22, 2017, we will be running the first &lt;em&gt;Study Camp&lt;/em&gt; event focused on Progressive Web Apps (PWA) through the Google Developer Group NYC, hosted at General Assembly in New York.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;You can find out more about the agenda on&lt;/em&gt; &lt;a href="https://pwacamp2017.splashthat.com/"&gt;&lt;em&gt;our event page&lt;/em&gt;&lt;/a&gt; &lt;em&gt;and&lt;/em&gt; &lt;a href="https://generalassemb.ly/education/progressive-web-apps-camp/new-york-city/39343"&gt;&lt;em&gt;purchase tickets to attend it here&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt; &lt;strong&gt;&lt;em&gt;Use the promo code pwa-30 to get a 30% discount for a limited time.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The main goal for the event is to jumpstart PWA development by beginners and solidify real-world deployments by practitioners. As a fan of &lt;a href="http://calnewport.com/books/deep-work/"&gt;Deep Work&lt;/a&gt;, I see 1-day events like this as critical to empowering the immersive learning approach that translates awareness to action.&lt;/p&gt;

&lt;h3&gt;
  
  
  #PWACamp Series
&lt;/h3&gt;

&lt;p&gt;Over the next few weeks, I hope to publish a series of posts that provide both context for #PWACamp and resources for those who will attend it, and want to go further. This list will be updated with links to the relevant articles as the posts are rolled out..&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://medium.com/pwa-camp/road-to-pwacamp-principles-cf1a23886964"&gt;Road To PWA Camp / Principles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Road to PWA Camp / Programming&lt;/li&gt;
&lt;li&gt;Road to PWA Camp /Practices&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  #PWACamp Agenda
&lt;/h3&gt;

&lt;p&gt;The event is broken into three sessionsâ€Š–â€Š&lt;em&gt;Principles&lt;/em&gt;, &lt;em&gt;Programming&lt;/em&gt; and &lt;em&gt;Practicesâ€Š&lt;/em&gt;–â€Šeffectively moving from an understanding of core concepts &amp;amp; tools, to getting hands-on development experience with building a PWA, and finally, to learning about real-world deployments from industry experts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vuHIy4fg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/839/1%2AJj132T49N7jCLrbzNizcAg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vuHIy4fg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/839/1%2AJj132T49N7jCLrbzNizcAg.png" alt=""&gt;&lt;/a&gt;PWA Camp 2017Â Speakers&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;#PWACamp Session 1: Principles&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;At its core, the Progressive Web Apps vision is about using &lt;em&gt;progressive enhancement&lt;/em&gt; to deliver a web app experience that is &lt;em&gt;reliable&lt;/em&gt; (functions even in poor network conditions), &lt;em&gt;fast&lt;/em&gt; (quick to first paint, smooth animations and responsive to user events), and &lt;em&gt;engaging&lt;/em&gt; (feels like a native app with immersive full-screen UX, familiar launch options &amp;amp; push notifications).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.twitter.com/petele"&gt;Pete LePage (Developer Advocate @Google)&lt;/a&gt; will kick off #PWACamp with a deep-dive on PWA that will cover these concepts in more detail.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It also takes security very seriously, with &lt;a href="https://developers.google.com/web/fundamentals/security/encrypt-in-transit/why-https"&gt;HTTPS being a core requirement&lt;/a&gt; for PWA compliance. HTTPS ensures that all communications between client and server are encrypted by default, protecting against man-in-the-middle attacks while also supporting data integrity of the website and user data. More importantly, HTTPS is critical to permission workflows required for leveraging many of the new browser platform features, making it vital for developers to understand how HTTPs functions and how it is used for PWA.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.twitter.com/kosamari"&gt;Mariko Kosaka&lt;/a&gt; (Dev Rel @Google) will break down the complexities &amp;amp; uses of HTTPS in her much-anticipated #PWACamp talk on “HTTPS Adoption in PWA”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But PWA is a vision for building better web apps, and not a new framework or platform for development. Rather, the goal is to find ways to incorporate and validate best practices in the various front-end technologies (e.g., React, Angular, VanillaJS, Polymer, Ember, Vue, etc.). And doing that well requires tooling supportâ€Š–â€Šnot just for building PWA but for auditing their compliance against various metrics like performance and accessibility.&lt;/p&gt;

&lt;p&gt;In May 2017, the Chrome team unveiled &lt;a href="https://workboxjs.org/"&gt;WorkboxJS&lt;/a&gt;, a toolkit of JavaScript libraries that work frictionlessly with popular build tools to enable core PWA functionality. They also announced the integration of &lt;a href="https://github.com/GoogleChrome/lighthouse"&gt;Project Lighthouse&lt;/a&gt; into Chrome Dev Tools, making it intuitive to audit your web app using the same interface used for development and debugging. Like PageSpeed Insights, the Project Lighthouse audit is prescriptiveâ€Š–â€Šit not only identifies issues based on a &lt;a href="https://developers.google.com/web/progressive-web-apps/checklist"&gt;PWA Checklist&lt;/a&gt;, but it provides clear guidance on how to fix them in order to gain compliance even as requirements &amp;amp; features evolve.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Jeff Posnick (Dev Rel @Google) will revisit&lt;/em&gt; &lt;a href="https://www.youtube.com/watch?v=fyi7auD5MzU"&gt;&lt;em&gt;his Google IO17 session on PWA&lt;/em&gt;&lt;/a&gt;&lt;em&gt;at #PWACamp, focusing specifically on WorkboxJS &amp;amp; Lighthouse usage for devs&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why attend #PWACamp
&lt;/h3&gt;

&lt;p&gt;If you manage teams or oversee projects in industry, then 2017 is the year to double-down on PWA. Forbes identified &lt;a href="https://www.forbes.com/sites/tomaslaurinavicius/2017/01/25/web-design-trends-2017/2/#1008acf81dd0"&gt;PWA as one of the top web trends to watch&lt;/a&gt; in 2017. And&lt;a href="https://developers.googleblog.com/2017/05/google-io-2017-empowering-developers-to.html"&gt;PWA was one of the big topics at Google IO&lt;/a&gt; (May 2017) with many &lt;a href="https://developers.google.com/web/showcase/"&gt;high-profile PWA launches&lt;/a&gt; that showcase PWA adoption at scale.&lt;/p&gt;

&lt;p&gt;For web developers, Google IO was marked by the release of WorkboxJS, the announcement of Lighthouse integration into DevTools, and the debut of &lt;a href="https://hnpwa.com/"&gt;HNPWA&lt;/a&gt;â€Š–â€Šthe _spiritual successor to ToDoMVCâ€Š–â€Š_now providing developers with comprehensive examples of PWA implementations of the Hacker News client with diverse front-end technologies.&lt;/p&gt;

&lt;p&gt;And the momentum keeps growing ..&lt;/p&gt;

&lt;p&gt;Whether you are new to PWA or have been using it for a while, this is great way to get up to speed with the latest developments on the PWA front. And, more importantly, it’s a way to build your connections within the community of PWA developers, practitioners and users&lt;/p&gt;

&lt;p&gt;In the next installment, “ &lt;strong&gt;Road to #PWACamp: Programming”&lt;/strong&gt; , we’ll explore how you can get started with PWA development using generic platforms (e.g., remix with Glitch) or with specific front-end technologies in mind (e.g., React, Angular, Polymer, Vue etc.).&lt;/p&gt;

&lt;p&gt;Stay tuned.&lt;/p&gt;

&lt;h3&gt;
  
  
  Videos To Watch / PWA @GoogleIO 2017
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=m-sCdS0sQO8&amp;amp;index=5&amp;amp;list=PLNYkxOF6rcICniLJ2rfj0FexlA-9zmJJE"&gt;Progressive Web Apps: Great Experiences Everywhere&lt;/a&gt;, &lt;a href="https://medium.com/u/2e5570e0a783"&gt;Sam Birch&lt;/a&gt; and &lt;a href="https://medium.com/u/fa63e1e8071"&gt;Alex Russell&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=C8KcW1Nj3Mw&amp;amp;index=10&amp;amp;list=PLNYkxOF6rcICniLJ2rfj0FexlA-9zmJJE"&gt;Great PWA Experiences with Angular&lt;/a&gt;, &lt;a href="https://medium.com/u/a1fba6cea10f"&gt;Stephen Fluin&lt;/a&gt; and Alex Rickabaugh&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=fyi7auD5MzU&amp;amp;list=PLNYkxOF6rcICniLJ2rfj0FexlA-9zmJJE&amp;amp;index=17"&gt;WomenTechmakers.com: A PWA Migration&lt;/a&gt;, &lt;a href="https://medium.com/u/3fb739097395"&gt;Jeffrey Posnick&lt;/a&gt; and &lt;a href="https://medium.com/u/625272420a5a"&gt;Ewa Gasperowicz&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=aCMbSyngXB4&amp;amp;list=PLNYkxOF6rcICniLJ2rfj0FexlA-9zmJJE&amp;amp;index=24"&gt;Production PWA with JS Frameworks&lt;/a&gt;, &lt;a href="https://medium.com/u/2508e4c7a8ec"&gt;Addy Osmani&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=NoRYn6gOtVo&amp;amp;index=25&amp;amp;list=PLNYkxOF6rcICniLJ2rfj0FexlA-9zmJJE"&gt;Staying off the Rocks: Using Lighthouse to build seaworthy PWA&lt;/a&gt;, &lt;a href="https://medium.com/u/443b43fab64"&gt;Eric Bidelman&lt;/a&gt; and &lt;a href="https://medium.com/u/367f15fa8a7f"&gt;Brendan Kenny&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=GoXgl9r0Kjk&amp;amp;list=PLNYkxOF6rcICniLJ2rfj0FexlA-9zmJJE&amp;amp;index=20"&gt;Getting the Green Lock: HTTPS Stories from the Field&lt;/a&gt; &lt;a href="https://medium.com/u/10b89e6593cd"&gt;Emily Schechter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=mmq-KVeO-uU&amp;amp;list=PLNYkxOF6rcICniLJ2rfj0FexlA-9zmJJE&amp;amp;index=19"&gt;Creating UX that just feels right with PWA&lt;/a&gt;, &lt;a href="https://medium.com/u/94a116f73676"&gt;Owen Campbell-Moore&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;




</description>
      <category>studycamp</category>
      <category>googledevelopergro</category>
      <category>webdev</category>
      <category>progressivewebapp</category>
    </item>
  </channel>
</rss>
