<?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: victor</title>
    <description>The latest articles on DEV Community by victor (@segun_codes).</description>
    <link>https://dev.to/segun_codes</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%2F210839%2F2d8352c2-96db-48ba-b79a-c4ed6fcda4ce.jpeg</url>
      <title>DEV Community: victor</title>
      <link>https://dev.to/segun_codes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/segun_codes"/>
    <language>en</language>
    <item>
      <title>Contributing to #hackoberfest as a Flutter Developer 💙💙💙</title>
      <dc:creator>victor</dc:creator>
      <pubDate>Mon, 03 Oct 2022 08:52:14 +0000</pubDate>
      <link>https://dev.to/segun_codes/contributing-to-hackoberfest-as-a-flutter-developer-570m</link>
      <guid>https://dev.to/segun_codes/contributing-to-hackoberfest-as-a-flutter-developer-570m</guid>
      <description>&lt;p&gt;So Hackoberfest is now in full swing and began on September 29, 2022, and will last throughout the entire month of October. In essence, hackoberfest is a month-long event where developers can get involved with the Open Source project and receive recognition for their work.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to participate.
&lt;/h2&gt;

&lt;p&gt;It's very simple to sign up and begin participating in the Hackoberfest challenge.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Read the Guidelines
&lt;/h3&gt;

&lt;p&gt;Every contributor to Hackoberfest must abide by the rules and requirements in order for their contribution to be recognized or to avoid being flagged off. The rules were developed to prevent contributors from spamming, and they are very simple to follow. &lt;a href="https://hacktoberfest.com/participation/"&gt;participation rules&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Signup to participate
&lt;/h3&gt;

&lt;p&gt;You must sign up at &lt;a href="https://hacktoberfest.com/auth/"&gt;Signup&lt;/a&gt; in order to participate in the Hacktober challenge. In order for your contributions to be easily recognized and for you to access the to open source projects&lt;/p&gt;

&lt;h3&gt;
  
  
  3. start contributing 💃💃💃
&lt;/h3&gt;

&lt;p&gt;You can now begin contributing to any of the participating github or gitlap repositories.&lt;br&gt;
PRs that are in a repository with the hacktoberfest topic and have been merged, accepted by a maintainer, or marked as hacktoberfest-accepted will count toward your participation.&lt;br&gt;
Make a PR request before October 31st to qualify for an incredible reward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contrubuting as flutter developer
&lt;/h2&gt;

&lt;p&gt;This year's Hackotberfest is particularly noteworthy for us Flutter developers as a result of the collaboration between guys at Invertase and the Flutter community to organize an exciting month for Flutter and Dart developers worldwide.&lt;/p&gt;

&lt;p&gt;And it's incredibly simple to participate in the special edition for flutter developers; all you need to do is sign up on Invertase.io (&lt;a href="https://invertase.io/community/hacktoberfest"&gt;https://invertase.io/community/hacktoberfest&lt;/a&gt;). and you gain entry to View the program's list of available eligible issues.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reqirement for a succesfull Pr
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Successful Hacktoberfest Pull Requests&lt;/li&gt;
&lt;li&gt;Mentions issues with the hacktoberfest and/or hacktoberfest-special tag&lt;/li&gt;
&lt;li&gt;Merged and tagged with hacktoberfest-accepted
Submitted between 29th September and 31st October
Meaningful, adds value, and contribute to the success of the repository&lt;/li&gt;
&lt;li&gt;Avoid spamming! You will be blocked from the program if you repeat this!&lt;/li&gt;
&lt;li&gt;Do not send small tweak PR for a repository such as fixing typos!&lt;/li&gt;
&lt;li&gt;Passes all CI checks and is approved and merged by a maintainer&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Rewards 🎁
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E0sadj_9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://invertase.io/hacktoberfest/swags.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E0sadj_9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://invertase.io/hacktoberfest/swags.jpg" alt="alt text" width="880" height="404"&gt;&lt;/a&gt;&lt;br&gt;
In addition to the fantastic prize you receive for participating in the hackotoberfest, the guys at Invertase have a special prize for those who participate in the flutter edition.&lt;br&gt;
💙 Dash&lt;br&gt;
💙 Zappy&lt;br&gt;
💙 Google Home&lt;br&gt;
💙 FlutterVikings goodies&lt;br&gt;
💙 Cool stickers box&lt;br&gt;
&lt;a href="https://invertase.io/community/hacktoberfest"&gt;check out the special prize&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So what are you waiting for start hacking your way into the month hackotoberfest 👍.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>hacktoberfest</category>
      <category>fest</category>
      <category>github</category>
    </item>
    <item>
      <title>Getting started with Supabase.io(firebase Alt) on flutter </title>
      <dc:creator>victor</dc:creator>
      <pubDate>Sun, 07 Nov 2021 19:42:16 +0000</pubDate>
      <link>https://dev.to/segun_codes/getting-started-with-supabaseiofirebase-alt-on-flutter-29p</link>
      <guid>https://dev.to/segun_codes/getting-started-with-supabaseiofirebase-alt-on-flutter-29p</guid>
      <description>&lt;p&gt;Supabase.io is an open-source backend as a service(BASS) that allows seamless integration of backend services into your application without the need for complex structure. supabase.io is a fast-growing alternative to Firebase and they have similar features which include database service, authentication service, storage service, and coming soon cloud functions. &lt;br&gt;
Supabase.io has seamless integration with flutter application with fast integration of its core features. So in this article, we'll work through how to set up supabase.io in your flutter project.&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;firstly we have to create a new project in app.supabase.io then enter the project details and wait for the project to launch. &lt;br&gt;
Next, we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to the "SQL" section.&lt;/li&gt;
&lt;li&gt;Click "User Management Starter".&lt;/li&gt;
&lt;li&gt;Click "Run".
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fogabike-app.appspot.com%2Fo%2Fuploads%252FGroup%2520432.png%3Falt%3Dmedia%26token%3Dc6dc3d76-2b9c-454c-b9da-bd11158ea9ca" alt="image"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then you've created some database tables, you are ready to insert data using the auto-generated API. We just need to get the URL and anon key from the API settings. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to the "Settings" section.&lt;/li&gt;
&lt;li&gt;Click "API" in the sidebar.&lt;/li&gt;
&lt;li&gt;Find your API URL on this page.&lt;/li&gt;
&lt;li&gt;Find your "anon" key on this page.&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%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fogabike-app.appspot.com%2Fo%2Fuploads%252FGroup%2520433.png%3Falt%3Dmedia%26token%3De28911be-f53e-4744-ac5b-b846b52c0f1c" 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%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fogabike-app.appspot.com%2Fo%2Fuploads%252FGroup%2520433.png%3Falt%3Dmedia%26token%3De28911be-f53e-4744-ac5b-b846b52c0f1c" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: your API URL and "anon" key would use when initializing supabase inside your project.&lt;/p&gt;
&lt;h2&gt;
  
  
  Setting Your App.
&lt;/h2&gt;

&lt;p&gt;After creating your fultter app, you will have to install the supabase_flutter dependency,&lt;br&gt;
Run the following command in your terminal to get the newest version of supabase_flutter to your project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter pub add supabase_flutter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then run&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter pub get
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to install the dependencies.&lt;/p&gt;

&lt;p&gt;Now that we have the dependencies installed let's set up deep links so users who have logged in via magic link or OAuth can come back to the app. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to the "Authentication" section.&lt;/li&gt;
&lt;li&gt;Click "Settings" in the sidebar.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;io.supabase.flutterquickstart://login-callback/&lt;/code&gt; in the Additional Redirect URLs input field.&lt;/li&gt;
&lt;li&gt;Hit save.&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%2Fsupabase.io%2Fdocs%2Fassets%2Fimages%2Fdeeplink-setting-ecf3609d951e83e5ca3c214b44dafcf0.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%2Fsupabase.io%2Fdocs%2Fassets%2Fimages%2Fdeeplink-setting-ecf3609d951e83e5ca3c214b44dafcf0.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This happened in the supabase end now we also have to add for android and ios.&lt;br&gt;
For android: locate your AndroidManifest.xml file in android/app/src/main/AndroidManifest.xml to add an intent-filter to enable deep linking&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;manifest ...&amp;gt;
  &amp;lt;!-- ... other tags --&amp;gt;
  &amp;lt;application ...&amp;gt;
    &amp;lt;activity ...&amp;gt;
      &amp;lt;!-- ... other tags --&amp;gt;

      &amp;lt;!-- Add this intent-filter for Deep Links --&amp;gt;
      &amp;lt;intent-filter&amp;gt;
        &amp;lt;action android:name="android.intent.action.VIEW" /&amp;gt;
        &amp;lt;category android:name="android.intent.category.DEFAULT" /&amp;gt;
        &amp;lt;category android:name="android.intent.category.BROWSABLE" /&amp;gt;
        &amp;lt;!-- Accepts URIs that begin with YOUR_SCHEME://YOUR_HOST --&amp;gt;
        &amp;lt;data
          android:scheme="io.supabase.flutterquickstart"
          android:host="login-callback" /&amp;gt;
      &amp;lt;/intent-filter&amp;gt;

    &amp;lt;/activity&amp;gt;
  &amp;lt;/application&amp;gt;
&amp;lt;/manifest&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Ios: add CFBundleURLTypes to enable deep linking in ios/Runner/Info.plis&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!-- ... other tags --&amp;gt;
&amp;lt;plist&amp;gt;
&amp;lt;dict&amp;gt;
  &amp;lt;!-- ... other tags --&amp;gt;

  &amp;lt;!-- Add this array for Deep Links --&amp;gt;
  &amp;lt;key&amp;gt;CFBundleURLTypes&amp;lt;/key&amp;gt;
  &amp;lt;array&amp;gt;
    &amp;lt;dict&amp;gt;
      &amp;lt;key&amp;gt;CFBundleTypeRole&amp;lt;/key&amp;gt;
      &amp;lt;string&amp;gt;Editor&amp;lt;/string&amp;gt;
      &amp;lt;key&amp;gt;CFBundleURLSchemes&amp;lt;/key&amp;gt;
      &amp;lt;array&amp;gt;
        &amp;lt;string&amp;gt;io.supabase.flutterquickstart&amp;lt;/string&amp;gt;
      &amp;lt;/array&amp;gt;
    &amp;lt;/dict&amp;gt;
  &amp;lt;/array&amp;gt;
  &amp;lt;!-- ... other tags --&amp;gt;
&amp;lt;/dict&amp;gt;
&amp;lt;/plist&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the deep linking, we have to initialize supabase before ranApp() in main.dart to enable use it in our project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Future&amp;lt;void&amp;gt; main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Supabase.initialize(
    url: '[YOUR_SUPABASE_URL]',
    anonKey: '[YOUR_SUPABASE_ANON_KEY]',
  );
  runApp(MyApp());
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this, you are all set to start building your project with supabase.io. so the next step is to set up the authentication with supabase.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>dart</category>
      <category>superbase</category>
      <category>firebase</category>
    </item>
    <item>
      <title>Step-by-step Guide On Setting Up AWS Amplify On Flutter </title>
      <dc:creator>victor</dc:creator>
      <pubDate>Mon, 05 Jul 2021 15:17:34 +0000</pubDate>
      <link>https://dev.to/segun_codes/step-by-step-guide-on-setting-up-aws-amplify-on-flutter-3fmn</link>
      <guid>https://dev.to/segun_codes/step-by-step-guide-on-setting-up-aws-amplify-on-flutter-3fmn</guid>
      <description>&lt;p&gt;AWS amplify is a BAAS (Back-End As A Service) which is part of the AWS family.&lt;br&gt;
Aws Amplify provided backend services such as firebase:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fdispatch-dc4f9.appspot.com%2Fo%2FScreen%2520Shot%25202021-07-05%2520at%25201.43.54%2520PM.png%3Falt%3Dmedia%26token%3D3ad45f80-24fe-427d-8e33-b578e4cb4118" 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%2Ffirebasestorage.googleapis.com%2Fv0%2Fb%2Fdispatch-dc4f9.appspot.com%2Fo%2FScreen%2520Shot%25202021-07-05%2520at%25201.43.54%2520PM.png%3Falt%3Dmedia%26token%3D3ad45f80-24fe-427d-8e33-b578e4cb4118" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
Getting started with AWS for beginners is quite confusing, so we would try to make it as simple as possible.&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Install the amplfly cli:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g @aws-amplify/cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When that is completed, you then set up the Amplify CLI. Configure Amplify by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;amplify configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;amplify configure&lt;/code&gt; would require you to &lt;a href="https://signin.aws.amazon.com/signin?redirect_uri=https%3A%2F%2Fconsole.aws.amazon.com%2Fconsole%2Fhome%3Ffromtb%3Dtrue%26hashArgs%3D%2523%26isauthcode%3Dtrue%26state%3DhashArgsFromTB_us-east-1_e7dc5e75030e693f&amp;amp;client_id=arn%3Aaws%3Asignin%3A%3A%3Aconsole%2Fcanvas&amp;amp;forceMobileApp=0&amp;amp;code_challenge=OWeFln4JAgmYgM7Buz67BTXG5KPwyeeC7jaOwKTIYRc&amp;amp;code_challenge_method=SHA-256" rel="noopener noreferrer"&gt;sign&lt;/a&gt; into the AWS Console if you have an existing account or &lt;a href="https://portal.aws.amazon.com/billing/signup?redirect_url=https%3A%2F%2Faws.amazon.com%2Fregistration-confirmation#/start" rel="noopener noreferrer"&gt;create&lt;/a&gt; a new one.&lt;br&gt;
 once signed in Amplify CLI will require you to create a user to &lt;a href="https://aws.amazon.com/iam/" rel="noopener noreferrer"&gt;AWS Identity and Access Management&lt;/a&gt; (IAM). From your account&lt;/p&gt;

&lt;p&gt;Navigate to the IAM Portal and select ‘Add User’. Make sure you have selected the proper region (top right).&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdocs.amplify.aws%2Fimages%2Fuser-creation.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%2Fdocs.amplify.aws%2Fimages%2Fuser-creation.gif" alt="image"&gt;&lt;/a&gt;&lt;br&gt;
You will be guided through a series of steps to create your user.&lt;br&gt;
Remember to store both the &lt;code&gt;ACCESS KEY ID&lt;/code&gt; and &lt;code&gt;SECRET ACCESS KEY&lt;/code&gt; they would come in handy while setting up your project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Enter the access key of the newly created user:
? accessKeyId:  # YOUR_ACCESS_KEY_ID
? secretAccessKey:  # YOUR_SECRET_ACCESS_KEY
This would update/create the AWS Profile in your local machine
? Profile Name:  # (default)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Successfully set up the new user.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up the project
&lt;/h2&gt;

&lt;p&gt;Create a new flutter project on android studio after setting up open pubspec.yaml and add the following 3 dependencies below the line “SDK:flutter”.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  amplify_flutter: ^0.2.0
  amplify_auth_cognito: ^0.2.0
  amplify_analytics_pinpoint: ^0.2.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;sync your project with your new configuration, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter pub get
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then initialized Amplify&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;amplify init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enter the following when prompted:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;? Enter a name for the environment
    `dev`
? Choose your default editor:
    `IntelliJ IDEA`
? Choose the type of app that you're building: 
    'flutter'
? Where do you want to store your configuration file? 
    ./lib/
? Do you want to use an AWS profile?
    `Yes`
? Please choose the profile you want to use
    `default`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a one-time initialization process to create an Amplify-supported application. This command helps you to choose which AWS profile is to be used to allocate all the AWS resources and select the framework language(Javascript, Flutter, Java, Swift) corresponding to the project. Amplify init creates a parent CloudFormation template in an S3 bucket which will contain a nested CloudFormation template for when other AWS resources are added. The same S3 bucket also contains Lambda zip files and AppSync schema and resolver files. amplify/directory is created upon successful completion of the amplify init command which contains all necessary metadata files.&lt;/p&gt;

&lt;p&gt;Before using any methods in the Amplify Flutter Library, it’s important to add all the necessary plugins and to call configure once in your app.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Amplify Flutter Packages
import 'package:amplify_flutter/amplify.dart';
import 'package:amplify_analytics_pinpoint/amplify_analytics_pinpoint.dart';
import 'package:amplify_auth_cognito/amplify_auth_cognito.dart';

// Generated in previous step 
import 'amplifyconfiguration.dart'; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add the following code to your application’s root Stateful Widget&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
class _MyHomePageState extends State&amp;lt;MyHomePage&amp;gt; {

  @override
  initState() {
    super.initState(); 
    _configureAmplify(); 
  }

  void _configureAmplify() async {

    // Add Pinpoint and Cognito Plugins, or any other plugins you want to use
    AmplifyAnalyticsPinpoint analyticsPlugin = AmplifyAnalyticsPinpoint();
    AmplifyAuthCognito authPlugin = AmplifyAuthCognito();
    await Amplify.addPlugins([authPlugin, analyticsPlugin]);

    // Once Plugins are added, configure Amplify
    // Note: Amplify can only be configured once.
    try {
      await Amplify.configure(amplifyconfig);
    } on AmplifyAlreadyConfiguredException {
      print("Tried to reconfigure Amplify; this can occur when your app restarts on Android.");
    }
  }

  // customize the rest of your Widget below as you wish...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice the &lt;code&gt;Addplugin&lt;/code&gt; method was called before the &lt;code&gt;Amplify.configuration()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Congratulation, we have just concluded setting your first flutter project with Aws Amplify.&lt;br&gt;
Moving forward, in the next part of this series, we will be adding AWS Cognito to our project to enable a nice user sign-up/sign-in.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>aws</category>
      <category>beginners</category>
      <category>baas</category>
    </item>
    <item>
      <title>Full Page scroll views in flutter(TikTok effect)</title>
      <dc:creator>victor</dc:creator>
      <pubDate>Sun, 20 Jun 2021 12:38:27 +0000</pubDate>
      <link>https://dev.to/segun_codes/full-page-scroll-views-in-flutter-tiktok-effect-1pc4</link>
      <guid>https://dev.to/segun_codes/full-page-scroll-views-in-flutter-tiktok-effect-1pc4</guid>
      <description>&lt;p&gt;You must have seen that the Ui flow between "Tiktok" and Instagram reel are similar, both of them have the full-page scroll view effect based on user swipe.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fim3.ezgif.com%2Ftmp%2Fezgif-3-191e2cd68913.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%2Fim3.ezgif.com%2Ftmp%2Fezgif-3-191e2cd68913.gif" alt="instargram"&gt;&lt;/a&gt;&lt;br&gt;
So we are going to write code for a basic component app with a full-page scroll view on display.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fim3.ezgif.com%2Ftmp%2Fezgif-3-4373facaa85b.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%2Fim3.ezgif.com%2Ftmp%2Fezgif-3-4373facaa85b.gif" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Firstly we declare a page controller that would handle the state for our pageview widget.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

PageController controller =PageController(initialPage: 0);


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

&lt;/div&gt;

&lt;p&gt;We declared the page view widget with a vertical scroll direction and created a list of pages which we would be scrolling through as children.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

PageView(
          controller: controller,
          scrollDirection: Axis.vertical,
          children: [
            Container(
              width: MediaQuery.of(context).size.width,
              height: MediaQuery.of(context).size.height,
              color: Colors.blue,
              child: Center(child: Text('page 1'),),
            ),
            Container(
              width: MediaQuery.of(context).size.width,
              height: MediaQuery.of(context).size.height,
              color: Colors.red,
              child: Center(child: Text('page 2'),),
            ),
            Container(
              width: MediaQuery.of(context).size.width,
              height: MediaQuery.of(context).size.height,
              color: Colors.yellow,
              child: Center(child: Text('page 3'),),
            ),

          ],
        ),


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

&lt;/div&gt;

&lt;p&gt;That is all, this is a building block for an app like TikTok and Instagram where another component would be added on top.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/cyiboy/-Full-Page-scroll-Flutter" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>beginners</category>
      <category>dart</category>
      <category>tiktok</category>
    </item>
    <item>
      <title>Top BAAS (Backend as a service)  for flutter  💙 💙 💙</title>
      <dc:creator>victor</dc:creator>
      <pubDate>Thu, 13 May 2021 21:48:01 +0000</pubDate>
      <link>https://dev.to/segun_codes/top-baas-backend-as-a-service-for-flutter-3nob</link>
      <guid>https://dev.to/segun_codes/top-baas-backend-as-a-service-for-flutter-3nob</guid>
      <description>&lt;p&gt;Backend as a service (BaaS) is a cloud model that helps developers automate backend development functions and achieve hassle-free cloud infrastructure management. A BaaS service provider is responsible for running servers and performing maintenance.&lt;/p&gt;

&lt;p&gt;BaaS gives developers several tools to help them create backend code and accelerate development. Some of the features of BaaS include APIs, file storage, data management, and push notifications. &lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Scalable&lt;/li&gt;
&lt;li&gt;Hassle-free&lt;/li&gt;
&lt;li&gt;Time-saving&lt;/li&gt;
&lt;li&gt;More flexible&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  1. &lt;a href="https://firebase.google.com/"&gt;Firebase&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Firebase is a well-known backend platform powered by Google. It has lots of features that enhance the process of web and mobile app development. Firebase is well known for its robust NoSQL database that uses the JSON protocol for data storage actions.&lt;/p&gt;

&lt;h4&gt;
  
  
  Features
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Realtime Database&lt;/li&gt;
&lt;li&gt;Hosting&lt;/li&gt;
&lt;li&gt;Machine Learning&lt;/li&gt;
&lt;li&gt;Analytics&lt;/li&gt;
&lt;li&gt;APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pricing&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start for free&lt;/li&gt;
&lt;li&gt;Scale under a pay as you go model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://firebase.flutter.dev/"&gt;Get started with Firebase on Flutter&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;a href="https://parseplatform.org/"&gt;parseplatform&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Parse is an open-source framework for creating application backends with support for many frontend development technologies, including Swift, React Native, Ionic, Java, and Xamarin. Parse can be used to develop mobile, IoT, and web apps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Spreadsheet like database&lt;/li&gt;
&lt;li&gt;APIs (REST and GraphQL)&lt;/li&gt;
&lt;li&gt;Push-Notifications&lt;/li&gt;
&lt;li&gt;Social Login&lt;/li&gt;
&lt;li&gt;Automatic emails&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Price
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Free tier available&lt;/li&gt;
&lt;li&gt;Paid plans under Pay as you go&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://pub.dev/packages/parse_server_sdk_flutter"&gt;Get started with parse on Flutter&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;a href="https://aws.amazon.com/amplify/"&gt;AWS Amplify&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;AWS Amplify another accessible cloud BaaS platform. It is among the most widely-used platforms today.&lt;/p&gt;

&lt;p&gt;AWS Amplify offers secure and agile offerings for its global user base. Users can experience fast access to their resources and advanced functionality with this backend service.&lt;/p&gt;

&lt;h4&gt;
  
  
  Features
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;GraphQL and REST APIs&lt;/li&gt;
&lt;li&gt;Datastore&lt;/li&gt;
&lt;li&gt;Analytics&lt;/li&gt;
&lt;li&gt;Notifications&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Price
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Free tier available&lt;/li&gt;
&lt;li&gt;Paid plans under Pay as you go&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://docs.amplify.aws/start/q/integration/flutter"&gt;Get started with AWS Amplify on Flutter&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4.&lt;a href="https://appwrite.io/"&gt;Appwrite&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Appwrite is a self-hosted solution that provides developers with a set of easy-to-use and integrate REST APIs to manage their core backend needs.&lt;/p&gt;

&lt;h4&gt;
  
  
  Features
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Database&lt;/li&gt;
&lt;li&gt;Storage&lt;/li&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;Functions&lt;/li&gt;
&lt;li&gt;Console&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://appwrite.io/docs/getting-started-for-flutter"&gt;Get started with Appwrite on Flutter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>baas</category>
      <category>flutter</category>
      <category>dart</category>
      <category>backend</category>
    </item>
    <item>
      <title> Awesome plugins for android studio😎</title>
      <dc:creator>victor</dc:creator>
      <pubDate>Wed, 21 Aug 2019 00:54:36 +0000</pubDate>
      <link>https://dev.to/segun_codes/awesome-plugin-on-android-studio-eh3</link>
      <guid>https://dev.to/segun_codes/awesome-plugin-on-android-studio-eh3</guid>
      <description>&lt;p&gt;You can go ahead and start coding on a clean installation of Android Studio with just the necessary libraries installed and zero plugins added. But having Android Studio plugins installed makes your work more efficient, stress free, intelligent, and (when possible) fun😜. so let make a plunge!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Codota
&lt;/h2&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%2Fblog.codota.com%2Fwp-content%2Fuploads%2F2019%2F04%2FPH_4-gif.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%2Fblog.codota.com%2Fwp-content%2Fuploads%2F2019%2F04%2FPH_4-gif.gif" title="Codota" alt="Codota"&gt;&lt;/a&gt;&lt;br&gt;
 &lt;a href="https://plugins.jetbrains.com/plugin/7638-codota-" rel="noopener noreferrer"&gt;Codota&lt;/a&gt; completes lines of code based on millions of open source Java programs and your context helping you code faster with fewer errors. With features such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full line AI autocomplete&lt;/li&gt;
&lt;li&gt;In line and relevant code examples&lt;/li&gt;
&lt;li&gt;Code suggestions based on your own coding practices&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. String Manipulation
&lt;/h2&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%2Fplugins.jetbrains.com%2Ffiles%2F2162%2Fscreenshot_16015.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%2Fplugins.jetbrains.com%2Ffiles%2F2162%2Fscreenshot_16015.png" title="String Manipulation" alt="String Manipulation"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/2162-string-manipulation/" rel="noopener noreferrer"&gt;String Manipulation&lt;/a&gt; is used in manipulating strings. Perform a variety of different tasks on strings such as converting to camelCase, kebab-lowercase, KEBAB-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, words lowercase, First word capitalized, escaping string in Java, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Maven Helper
&lt;/h2&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%2Fplugins.jetbrains.com%2Ffiles%2F7179%2Fscreenshot_19711.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%2Fplugins.jetbrains.com%2Ffiles%2F7179%2Fscreenshot_19711.png" title="Maven Helper" alt="Maven Helper"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/7179-maven-helper" rel="noopener noreferrer"&gt;Maven Helper&lt;/a&gt; is a must-have plugin for working with Maven.&lt;br&gt;
Provides:   &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;easy way for analyzing and excluding conflicting dependencies&lt;/li&gt;
&lt;li&gt;actions to run/debug maven goals for a module that contains the current file or on the root module&lt;/li&gt;
&lt;li&gt;action to open terminal at the current maven module path&lt;/li&gt;
&lt;li&gt;actions to run/debug the current test file. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Butterknife
&lt;/h2&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%2Favast%2Fandroid-butterknife-zelezny%2Fmaster%2Fimg%2Fzelezny_animated.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%2Favast%2Fandroid-butterknife-zelezny%2Fmaster%2Fimg%2Fzelezny_animated.gif" title="butterknife" alt="Butterknife"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/7369-android-butterknife-zelezny" rel="noopener noreferrer"&gt;butterknife&lt;/a&gt; Most useful plug-in for Android Studio/IDEA that allows one-click creation of Butterknife view injections. In addition to injections this can even generate click methods for you!&lt;/p&gt;

&lt;h2&gt;
  
  
  5. CodeGlance
&lt;/h2&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%2Fplugins.jetbrains.com%2Ffiles%2F7275%2Fscreenshot_16821.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%2Fplugins.jetbrains.com%2Ffiles%2F7275%2Fscreenshot_16821.png" title="CodeGlance" alt="CodeGlance"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/7275-codeglance" rel="noopener noreferrer"&gt;CodeGlance&lt;/a&gt; Embeds a code minimap similar to the one found in Sublime into the editor pane. Works with both light and dark themes using your customized colors for syntax highlighting.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. ADB Idea
&lt;/h2&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%2Fplugins.jetbrains.com%2Ffiles%2F7380%2Fscreenshot_18192.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%2Fplugins.jetbrains.com%2Ffiles%2F7380%2Fscreenshot_18192.png" title="ADB Idea" alt="ADB Idea"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/7275-codeglance" rel="noopener noreferrer"&gt;ADB Idea&lt;/a&gt; is plugin for Android Studio and Intellij IDEA that speeds up your day to day android development.&lt;br&gt;
The following commands are provided:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uninstall App&lt;/li&gt;
&lt;li&gt;Kill App&lt;/li&gt;
&lt;li&gt;Start App&lt;/li&gt;
&lt;li&gt;Restart App&lt;/li&gt;
&lt;li&gt;Clear App Data&lt;/li&gt;
&lt;li&gt;Clear App Data and Restart and lot more.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. ADB wifi
&lt;/h2&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%2Fplugins.jetbrains.com%2Ffiles%2F7856%2Fscreenshot_15153.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%2Fplugins.jetbrains.com%2Ffiles%2F7856%2Fscreenshot_15153.png" title="ADB wifi" alt="ADB wifi"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/7856-adb-wifi" rel="noopener noreferrer"&gt;ADB wifi&lt;/a&gt; Android Studio plugin for debug android app over Wi-Fi.&lt;/p&gt;

&lt;h2&gt;
  
  
  8.  DTO generator
&lt;/h2&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%2Fprocess.filestackapi.com%2Fcache%3Dexpiry%3Amax%2FW5po5Lw1SayoorrA9pFR" 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%2Fprocess.filestackapi.com%2Fcache%3Dexpiry%3Amax%2FW5po5Lw1SayoorrA9pFR" title="DTo generator" alt="DTo generator"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/7834-dto-generator" rel="noopener noreferrer"&gt; DTO generator&lt;/a&gt; Data Transfer Object generator creates Java classes from a given feed. You can paste the JSON response directly to generate a corresponding POJO for it. Check out the github repository for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Material Design Icon Generator
&lt;/h2&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%2Fanstatic.azureedge.net%2Fcloudcache%2F9%2F7%2Fd%2F9%2F6%2F8%2F97d96886b828dee9f0ae5270821651307346fa1e.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%2Fanstatic.azureedge.net%2Fcloudcache%2F9%2F7%2Fd%2F9%2F6%2F8%2F97d96886b828dee9f0ae5270821651307346fa1e.gif" title="Material Design Icon Generator" alt="Material Design Icon Generator"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/7647-android-material-design-icon-generator/" rel="noopener noreferrer"&gt; Material Design Icon Generator&lt;/a&gt;&lt;br&gt;
This plugin help you to set material design icon in your app resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Android Drawable Importer
&lt;/h2&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%2Fanstatic.azureedge.net%2Fcloudcache%2F3%2F2%2F5%2Fd%2Fd%2F8%2F325dd880cc523340a47f7e2b8be8ca8bd703138a.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%2Fanstatic.azureedge.net%2Fcloudcache%2F3%2F2%2F5%2Fd%2Fd%2F8%2F325dd880cc523340a47f7e2b8be8ca8bd703138a.png" title="Android Drawable Importer" alt="Android Drawable Importer"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://plugins.jetbrains.com/plugin/7658-android-drawable-importer/" rel="noopener noreferrer"&gt; Android Drawable Importer&lt;/a&gt; powerhouse for adding images to your project. You can easily import an icon from Material Icons or Android Icons, set a format, size, color and multiple dimensions. You can also import a regular image and automatically resize it for target densities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bonus
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Power Mode II&lt;/em&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fplugins.jetbrains.com%2Ffiles%2F8251%2Fscreenshot_15884.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%2Fplugins.jetbrains.com%2Ffiles%2F8251%2Fscreenshot_15884.png" title="Power Mode II" alt="Power Mode II"&gt;&lt;/a&gt; &lt;a href="https://plugins.jetbrains.com/plugin/8251-power-mode-ii" rel="noopener noreferrer"&gt;Power Mode II&lt;/a&gt; Based on the activate-power-mode atom plugin. have fun while coding with animated Exploding falling sparks effect.&lt;/p&gt;

&lt;p&gt;Thanks for making it all the way down! these are just few of the available plugins for &lt;a href="https://plugins.jetbrains.com/androidstudio" rel="noopener noreferrer"&gt;Android Studio&lt;/a&gt;. So, if we left out your favorite plugin please let us know in the comments below. Happy coding👨‍💻👨‍💻! &lt;/p&gt;

</description>
      <category>android</category>
      <category>mobile</category>
      <category>plugins</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Anonymous Auth with Firebase on Android</title>
      <dc:creator>victor</dc:creator>
      <pubDate>Wed, 14 Aug 2019 10:04:10 +0000</pubDate>
      <link>https://dev.to/segun_codes/anonymous-auth-with-firebase-on-android-2obk</link>
      <guid>https://dev.to/segun_codes/anonymous-auth-with-firebase-on-android-2obk</guid>
      <description>&lt;p&gt;When working with firebase Authentication, temporary anonymous accounts can be created to authenticate with Firebase for a user not signed up to your app to store and work with data protected by security rules. In the event that the anonymous user decides to sign up to your app, you can interface their sign-in accreditations so they can keep on working with their ensured information in future sessions.&lt;/p&gt;

&lt;h2&gt;
  
  
  installation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add &lt;a href="https://firebase.google.com/docs/android/setup"&gt;Firebase&lt;/a&gt; to your android project If you haven't already&lt;/li&gt;
&lt;li&gt;Add the dependency for the Firebase Authentication Android library to your module (&lt;em&gt;app-level&lt;/em&gt;) Gradle file (usually &lt;em&gt;app/build.gradle&lt;/em&gt;):
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;implementation &lt;span class="s1"&gt;'com.google.firebase:firebase-auth:18.1.0'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;connect your app to your Firebase project, do so from the &lt;a href="https://console.firebase.google.com/"&gt;Firebase console.&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Enable anonymous auth: In the &lt;a href="https://console.firebase.google.com/"&gt;Firebase console&lt;/a&gt;, open the &lt;em&gt;Auth&lt;/em&gt; section. On the &lt;em&gt;Sign-in Methods&lt;/em&gt; page, enable the &amp;gt;Anonymous sign-in method.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;In your activity's &lt;em&gt;onCreate&lt;/em&gt; method, get the shared instance of the &lt;em&gt;FirebaseAuth&lt;/em&gt; object:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;private FirebaseAuth mAuth&lt;span class="p"&gt;;&lt;/span&gt;
// ...
// Initialize Firebase Auth
mAuth &lt;span class="o"&gt;=&lt;/span&gt; FirebaseAuth.getInstance&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;When initializing your Activity, check to see if the user is currently signed in:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;@Override
public void onStart&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    super.onStart&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    // Check &lt;span class="k"&gt;if &lt;/span&gt;user is signed &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;non-null&lt;span class="o"&gt;)&lt;/span&gt; and update UI accordingly.
    FirebaseUser currentUser &lt;span class="o"&gt;=&lt;/span&gt; mAuth.getCurrentUser&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    updateUI&lt;span class="o"&gt;(&lt;/span&gt;currentUser&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;call &lt;em&gt;signInAnonymously&lt;/em&gt; to sign in as an anonymous user:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mAuth.signInAnonymously&lt;span class="o"&gt;()&lt;/span&gt;
        .addOnCompleteListener&lt;span class="o"&gt;(&lt;/span&gt;this, new OnCompleteListener&amp;lt;AuthResult&amp;gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            @Override
            public void onComplete&lt;span class="o"&gt;(&lt;/span&gt;@NonNull Task&amp;lt;AuthResult&amp;gt; task&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;task.isSuccessful&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                    // Sign &lt;span class="k"&gt;in &lt;/span&gt;success, update UI with the signed-in &lt;span class="nb"&gt;users &lt;/span&gt;information
                    Log.d&lt;span class="o"&gt;(&lt;/span&gt;TAG, &lt;span class="s2"&gt;"signInAnonymously:success"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    FirebaseUser user &lt;span class="o"&gt;=&lt;/span&gt; mAuth.getCurrentUser&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    updateUI&lt;span class="o"&gt;(&lt;/span&gt;user&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                    // If sign &lt;span class="k"&gt;in &lt;/span&gt;fails, display a message to the user.
                    Log.w&lt;span class="o"&gt;(&lt;/span&gt;TAG, &lt;span class="s2"&gt;"signInAnonymously:failure"&lt;/span&gt;, task.getException&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    Toast.makeText&lt;span class="o"&gt;(&lt;/span&gt;AnonymousAuthActivity.this, &lt;span class="s2"&gt;"Authentication failed."&lt;/span&gt;,
                            Toast.LENGTH_SHORT&lt;span class="o"&gt;)&lt;/span&gt;.show&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    updateUI&lt;span class="o"&gt;(&lt;/span&gt;null&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;}&lt;/span&gt;

                // ...
            &lt;span class="o"&gt;}&lt;/span&gt;
        &lt;span class="o"&gt;})&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;use &lt;em&gt;getCurrentUser&lt;/em&gt; method to get account data for the signed in user&lt;/p&gt;

&lt;h2&gt;
  
  
  migrate an anonymous account to a permanent account
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When the user signs up, complete the sign-in flow for the user's authentication provider up to, but not including, calling one of the FirebaseAuth.signInWith methods.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get an AuthCredential for the new authentication provider:&lt;br&gt;
&lt;strong&gt;Email and password&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;AuthCredential credential &lt;span class="o"&gt;=&lt;/span&gt; EmailAuthProvider.getCredential&lt;span class="o"&gt;(&lt;/span&gt;email, password&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Pass the &lt;em&gt;AuthCredential&lt;/em&gt; object to the sign-in user's &lt;em&gt;linkWithCredential&lt;/em&gt; method
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mAuth.getCurrentUser&lt;span class="o"&gt;()&lt;/span&gt;.linkWithCredential&lt;span class="o"&gt;(&lt;/span&gt;credential&lt;span class="o"&gt;)&lt;/span&gt;
        .addOnCompleteListener&lt;span class="o"&gt;(&lt;/span&gt;this, new OnCompleteListener&amp;lt;AuthResult&amp;gt;&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            @Override
            public void onComplete&lt;span class="o"&gt;(&lt;/span&gt;@NonNull Task&amp;lt;AuthResult&amp;gt; task&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;task.isSuccessful&lt;span class="o"&gt;())&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                    Log.d&lt;span class="o"&gt;(&lt;/span&gt;TAG, &lt;span class="s2"&gt;"linkWithCredential:success"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    FirebaseUser user &lt;span class="o"&gt;=&lt;/span&gt; task.getResult&lt;span class="o"&gt;()&lt;/span&gt;.getUser&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    updateUI&lt;span class="o"&gt;(&lt;/span&gt;user&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                    Log.w&lt;span class="o"&gt;(&lt;/span&gt;TAG, &lt;span class="s2"&gt;"linkWithCredential:failure"&lt;/span&gt;, task.getException&lt;span class="o"&gt;())&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    Toast.makeText&lt;span class="o"&gt;(&lt;/span&gt;AnonymousAuthActivity.this, &lt;span class="s2"&gt;"Authentication failed."&lt;/span&gt;,
                            Toast.LENGTH_SHORT&lt;span class="o"&gt;)&lt;/span&gt;.show&lt;span class="o"&gt;()&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                    updateUI&lt;span class="o"&gt;(&lt;/span&gt;null&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="o"&gt;}&lt;/span&gt;

                // ...
            &lt;span class="o"&gt;}&lt;/span&gt;
        &lt;span class="o"&gt;})&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;if &lt;em&gt;linkWithCredential&lt;/em&gt; method call was successfull, the anonymous account data will be maigrated to the new user&lt;/p&gt;

</description>
      <category>firebase</category>
      <category>auth</category>
      <category>guid</category>
      <category>anonymous</category>
    </item>
  </channel>
</rss>
