<?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>DEV Community: Charlie Cheever</title>
    <description>The latest articles on DEV Community by Charlie Cheever (@ccheever).</description>
    <link>https://dev.to/ccheever</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%2Fuser%2Fprofile_image%2F290838%2F9beaa334-0622-4161-9b40-bdf0bd9ba921.jpeg</url>
      <title>DEV Community: Charlie Cheever</title>
      <link>https://dev.to/ccheever</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ccheever"/>
    <language>en</language>
    <item>
      <title>Expo Google Fonts is released!</title>
      <dc:creator>Charlie Cheever</dc:creator>
      <pubDate>Thu, 14 May 2020 00:50:35 +0000</pubDate>
      <link>https://dev.to/expo/expo-google-fonts-is-released-4g58</link>
      <guid>https://dev.to/expo/expo-google-fonts-is-released-4g58</guid>
      <description>&lt;p&gt;I wanted to use Google Fonts more easily in my Expo projects and so for the last week or two, I've been working on a library that has support for every font available on Google Fonts, and I'm excited to announce its release today!&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%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Fgifs%2Ftitle.gif" 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%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Fgifs%2Ftitle.gif" alt="Expo Google Fonts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;@expo-google-fonts&lt;/code&gt; packages for Expo allow you to easily use &lt;br&gt;
any of 991 fonts (and their variants) from &lt;br&gt;
&lt;a href="https://fonts.google.com" rel="noopener noreferrer"&gt;fonts.google.com&lt;/a&gt; in your Expo app.&lt;/p&gt;

&lt;p&gt;These packages and all these fonts work across web, iOS, and Android and &lt;br&gt;
are free to use and open source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;Here is an example of using the &lt;a href="https://fonts.google.com/specimen/Inter" rel="noopener noreferrer"&gt;Inter font family&lt;/a&gt; in a very simple project.&lt;/p&gt;

&lt;h4&gt;
  
  
  Install the package for the font you want
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;expo &lt;span class="nb"&gt;install&lt;/span&gt; @expo-google-fonts/inter expo-font
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  In your app
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;useEffect&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;View&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;StyleSheet&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-native&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;AppLoading&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;expo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;useFonts&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;Inter_900Black&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@expo-google-fonts/inter&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;fontsLoaded&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useFonts&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="nx"&gt;Inter_900Black&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;fontsLoaded&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;AppLoading&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;View&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;justifyContent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;center&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;alignItems&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;center&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;

        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Text&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;fontFamily&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Inter_900Black&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nx"&gt;Inter&lt;/span&gt; &lt;span class="nx"&gt;Black&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Text&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/View&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example Project
&lt;/h3&gt;

&lt;p&gt;Here is a &lt;a href="https://github.com/expo/google-fonts/tree/master/example" rel="noopener noreferrer"&gt;minimal but complete example&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Each individual font family package README includes a complete example of using that font family.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔡 Available Fonts
&lt;/h2&gt;

&lt;p&gt;You can browse all available Google Fonts on &lt;a href="https://fonts.google.com" rel="noopener noreferrer"&gt;fonts.google.com&lt;/a&gt;. You can get the Expo Google Fonts package npm package name from the font family name on Google Fonts. Just make everything lowercase and turn spaces into dashes, like you normally would with an npm package name. So, &lt;code&gt;Source San Pro&lt;/code&gt; would turn into &lt;code&gt;@expo-google-fonts/source-sans-pro&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;My friend Leandro Favre made a &lt;a href="https://directory.now.sh/" rel="noopener noreferrer"&gt;directory / search engine&lt;/a&gt; where you can browse and search through the complete list of fonts and it will give you the appropriate import statements.&lt;/p&gt;

&lt;p&gt;Here are a few examples of the 3020 variants of 991 fonts available:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/inter#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Finter%2FInter_400Regular.ttf.png" alt="Inter"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/manrope#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Fmanrope%2FManrope_400Regular.ttf.png" alt="Manrope"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/allan#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Fallan%2FAllan_400Regular.ttf.png" alt="Allan"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/roboto#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Froboto%2FRoboto_400Regular.ttf.png" alt="Roboto"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/lusitana#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Flusitana%2FLusitana_400Regular.ttf.png" alt="Lusitana"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/nunito#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Fnunito%2FNunito_400Regular.ttf.png" alt="Nunito"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/bangers#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Fbangers%2FBangers_400Regular.ttf.png" alt="Bangers"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/source-sans-pro#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Fsource-sans-pro%2FSourceSansPro_400Regular.ttf.png" alt="SourceSansPro"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/roboto-condensed#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Froboto-condensed%2FRobotoCondensed_400Regular.ttf.png" alt="RobotoCondensed"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/playfair-display#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Fplayfair-display%2FPlayfairDisplay_400Regular.ttf.png" alt="PlayfairDisplay"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/ubuntu#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Fubuntu%2FUbuntu_400Regular.ttf.png" alt="Ubuntu"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/oswald#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Foswald%2FOswald_400Regular.ttf.png" alt="Oswald"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/balsamiq-sans#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Fbalsamiq-sans%2FBalsamiqSans_400Regular.ttf.png" alt="BalsamiqSans"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/jost#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Fjost%2FJost_400Regular.ttf.png" alt="Jost"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/lato#readme" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fexpo%2Fgoogle-fonts%2Fmaster%2Ffont-packages%2Flato%2FLato_400Regular.ttf.png" alt="Lato"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  👩‍💻 @expo-google-fonts/dev
&lt;/h2&gt;

&lt;p&gt;If you are trying out lots of different fonts, you can try using the &lt;a href="https://github.com/expo/google-fonts/tree/master/font-packages/dev#readme" rel="noopener noreferrer"&gt;&lt;code&gt;@expo-google-fonts/dev&lt;/code&gt; package&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can import &lt;em&gt;any&lt;/em&gt; font style from any Expo Google Fonts package from it. It will load the fonts&lt;br&gt;
over the network at runtime instead of adding the asset as a file to your project, so it may take longer&lt;br&gt;
for your app to get to interactivity at startup, but it is extremely convenient&lt;br&gt;
for playing around with any style that you want.&lt;/p&gt;

&lt;h2&gt;
  
  
  📖 Licensing
&lt;/h2&gt;

&lt;p&gt;The Expo Google Fonts project and its code are licensed under the MIT License.&lt;/p&gt;

&lt;p&gt;All the fonts in the Google Fonts catalog are free and open source.&lt;/p&gt;

&lt;p&gt;Individual fonts have their own licenses. Many are licensed using the&lt;br&gt;
&lt;a href="https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&amp;amp;id=OFL" rel="noopener noreferrer"&gt;Open Font License&lt;/a&gt;. &lt;br&gt;
For example, &lt;a href="https://fonts.google.com/specimen/Nunito" rel="noopener noreferrer"&gt;Nunito&lt;/a&gt; uses the OFL. &lt;br&gt;
Check the Google Fonts pages of the font families you are using and add those licenses to&lt;br&gt;
your project's licenses list when you publish.&lt;/p&gt;

&lt;h4&gt;
  
  
  Q: Can I use these fonts commercially: to make a logo, in my app, on my website, etc.?
&lt;/h4&gt;

&lt;p&gt;A: You can use these fonts freely in your products &amp;amp; projects - print or digital, commercial or otherwise. However, you can't sell the fonts on their own. This isn't legal advice, please consider consulting a lawyer and see the full license for all details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;The source code for the project is at:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/expo/google-fonts#readme" rel="noopener noreferrer"&gt;https://github.com/expo/google-fonts#readme&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contributions welcome!&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%2Fgithub.com%2Fexpo%2Fgoogle-fonts%2Fblob%2Fmaster%2Fgifs%2Fannouncement.gif%3Fraw%3Dtrue" 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%2Fgithub.com%2Fexpo%2Fgoogle-fonts%2Fblob%2Fmaster%2Fgifs%2Fannouncement.gif%3Fraw%3Dtrue" alt="announcement"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>expo</category>
      <category>fonts</category>
      <category>react</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>COVID-19 Apps and APIs and Expo</title>
      <dc:creator>Charlie Cheever</dc:creator>
      <pubDate>Tue, 14 Apr 2020 05:48:19 +0000</pubDate>
      <link>https://dev.to/expo/covid-19-apps-and-apis-and-expo-3ane</link>
      <guid>https://dev.to/expo/covid-19-apps-and-apis-and-expo-3ane</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Millions of people are using Expo apps for COVID-19 tracking&lt;/li&gt;
&lt;li&gt;If you're building an app to fight COVID-19, we'll give you all our paid services and support for free and help you as much as we can. E-mail &lt;a href="//covid19@expo.io"&gt;covid19@expo.io&lt;/a&gt; to get in touch&lt;/li&gt;
&lt;li&gt;Expo plans to support the new contact tracing APIs that Apple and Google just announced&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tracking the Virus
&lt;/h2&gt;

&lt;p&gt;The coronavirus pandemic is at the top of everyone's mind right now. COVID-19 is killing thousands of people every day and devastating the lives of millions more. The lockdowns that have been put in place around the world are slowing the spread of the virus but costing jobs and disrupting lives. It's hard to think about much else right now.&lt;/p&gt;

&lt;p&gt;A few weeks ago, we started seeing some developers use Expo to build apps to track the spread of the virus. This kind of tracking using mobile phones is what's working to allow places like South Korea, Singapore, and Taiwan to keep COVID-19 at bay without complete lockdowns.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcul938k0d9d6iolgeksl.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcul938k0d9d6iolgeksl.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The HowWeFeel app is a great example of this in the US. It asks you a bunch of basic questions up-front about your age, exposure to other people, etc. and then you check in each day, self-reporting how you are feeling. It's a really slick app - easy to use and well-built; and using Expo for its web and iOS and Android apps. I check in with it every day.&lt;/p&gt;

&lt;p&gt;On an individual level, self-reported symptoms can help determine who should be tested for the virus. And on an aggregate level, the data from apps like these can help epidemiologists and public health officials identify where there might be outbreaks or pockets of the disease before testing is even available. People have been using techniques like this for over a while - notably Google Flu Trends used people's Google searches to predict flu outbreaks, with some success.&lt;br&gt;
We (the Expo team) want to help. We're proud that some of the best and most popular tracking apps are being built with Expo and are already being used by millions of people and growing. And so we're offering all our paid services and support for free to anyone working on an Expo project to combat COVID-19. E-mail &lt;a href="//mailto:covid19@expo.io"&gt;covid19@expo.io&lt;/a&gt; if you're interested in this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tracing the Virus
&lt;/h2&gt;

&lt;p&gt;The next step after tracking is tracing. With something as serious as COVID-19, every infection matters and can be life threatening. And since this virus is so contagious, one case in a community can lead to widespread infection quickly. But it's not always easy to identify everyone who might be sick when the disease is asymptomatic in some people and symptoms often take a few days to appear when they are present. The idea of tracing is that when a person tests positive for COVID-19, it's important to track down every person they might have given it to or gotten it from - which means everyone they've been in contact with for 14 days before their test. If tracking and tracing have widespread adoption in a community in conjunction with testing, a society can control the virus by asking just those who might have been exposed to an infected person to quarantine - allowing life for most people go back to something closer to normal.&lt;/p&gt;

&lt;p&gt;What's hard about contact tracing is that it's hard to remember everyone you've come in contact with.If you're living a normal life, that might be a whole lot of people over 14 days, and many of those you might not know or know how to identify or contact again (grocery store clerk, person next to you in yoga class, etc.) But our phones can actually do a much better job of this - computing devices are great at remembering things. And the sensors on the phones like Bluetooth radios can be used to detect other mobile devices in close proximity.&lt;/p&gt;

&lt;h2&gt;
  
  
  OS Level Tracing APIs from Apple and Google
&lt;/h2&gt;

&lt;p&gt;Those sensors are normally locked down on phones to protect your privacy, but Google and Apple just announced that they'll be releasing APIs designed to enable this kind of tracing while protecting each individual's privacy.&lt;br&gt;
The planned API basically has your phone generate - and periodically rotate - a unique identifier for you and your phone. Using your phone's Bluetooth radio, your phone will send out blasts throughout the day, broadcasting your identifier. Everyone else who has opted into this will have their phone listening for these broadcasts, so everyone in BLE range of you (about two rooms indoors or about 100 yards outside) will pick up your identifier and be able to record it.&lt;/p&gt;

&lt;p&gt;When someone tests positive for COVID-19, they can report this and upload their identifier to a central database of positive cases. The infected person loses some privacy here but it's under their control and opt-in. Your phone can now periodically download the database of known infected people and can cross-check that with the list of identifiers that your phone has seen. If you've opted into one of these apps and have crossed paths with someone who later tests positive, your phone will let you know. This way, you can get tested or self-quarantine for a while or at least be extra careful.&lt;/p&gt;

&lt;p&gt;Operating system level for APIs like these is the only realistic way that something like this could work. Under normal circumstances, apps are too sandboxed to be able to do this and the BLE stacks on iOS and Android are different enough that it would be a great challenge to get this to work effectively across platforms. It's also powerful that everyone building software around this will be using the same APIs so the apps will be able to interoperate. James and I actually worked on a project trying to do this a few years ago, and so I'm confident that it is both possible that the detection using BLE can work but also confident that apps won't be able to do it well without these APIs.&lt;br&gt;
There are some real concerns about privacy, prank positives, DOS attacks on the system, and download sizes of COVID-19 positive identifier data, but I'm optimistic that those issues can be mitigated or solved. It seems like Google and Apple are only going to approve official government or public health organizations to use these APIs, and that should reduce the surface area for potential abuse.&lt;/p&gt;

&lt;h2&gt;
  
  
  Expo and These APIs
&lt;/h2&gt;

&lt;p&gt;Eventually, Google and Apple plan to bake in support for this into their operating systems that use these APIs, but until then, they'll be relying on developers to make the tracing apps that use these APIs.&lt;br&gt;
We want Expo developers to be able to build these tracing apps and so we're planning to build support for them into Expo.&lt;/p&gt;

&lt;p&gt;Our plan is that we'll release an Expo module providing a consistent JavaScript API that you can use across both platforms. We'll try to release these as soon as the APIs are publicly available. You'll be able to use this module in any Expo app using the bare workflow. We'll try to include this module in the Expo Client app in the App Store and Play Store but we don't expect to be able to do that because it looks like Google and Apple plan to restrict use of these APIs to only official government public health apps. As we learn more, we'll adjust our plans to do whatever we can to help developers of these apps as much as we can.&lt;br&gt;
Any app using these APIs will need to get popular to be be effective, and we know that's hard but we hope that by enabling rapid development that works across iOS and Android, we give Expo developers the best shot at making this work.&lt;/p&gt;

</description>
      <category>expo</category>
      <category>covid19</category>
      <category>reactnative</category>
      <category>ble</category>
    </item>
  </channel>
</rss>
