<?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: Aaron Kipkoech</title>
    <description>The latest articles on DEV Community by Aaron Kipkoech (@aaronkip).</description>
    <link>https://dev.to/aaronkip</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%2F433307%2Ffae0185b-ace0-44c4-8235-1380590e1989.jpeg</url>
      <title>DEV Community: Aaron Kipkoech</title>
      <link>https://dev.to/aaronkip</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aaronkip"/>
    <language>en</language>
    <item>
      <title>Azure in Mobile Apps - Setting Up Flutter Environment.</title>
      <dc:creator>Aaron Kipkoech</dc:creator>
      <pubDate>Mon, 18 Jan 2021 11:13:01 +0000</pubDate>
      <link>https://dev.to/msambassadorske/azure-in-mobile-apps-setting-up-flutter-environment-4353</link>
      <guid>https://dev.to/msambassadorske/azure-in-mobile-apps-setting-up-flutter-environment-4353</guid>
      <description>&lt;h2&gt;
  
  
  What is flutter environment?
&lt;/h2&gt;

&lt;p&gt;This is where all the flutter magic is done. &lt;br&gt;
It entails IDEs and plugins necessary for flutter development.&lt;/p&gt;

&lt;h2&gt;
  
  
  IDEs
&lt;/h2&gt;

&lt;p&gt;IDEs are editors used to write code. &lt;br&gt;
IDEs that support flutter at the moment of writing this article are;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual Studio Code&lt;/li&gt;
&lt;li&gt;Android Studio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We're going to discuss installation of flutter in both of these software.&lt;/p&gt;

&lt;p&gt;Before diving into the software, let's get the necessary basic installation first.&lt;br&gt;
We'll need to install flutter sdk.&lt;br&gt;
Refer to the official flutter documentation for installation in various platforms here: &lt;a href="https://flutter.dev/docs/get-started/install"&gt;https://flutter.dev/docs/get-started/install&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Visual Studio Code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Install VS Code
&lt;/h3&gt;

&lt;p&gt;VS Code is a lightweight editor with Flutter app execution and debug support.&lt;/p&gt;

&lt;p&gt;VS Code, latest stable version: &lt;a href="https://code.visualstudio.com/"&gt;https://code.visualstudio.com/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Install the Flutter and Dart plugins
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Start VS Code.&lt;/li&gt;
&lt;li&gt;Invoke View &amp;gt; Command Palette….&lt;/li&gt;
&lt;li&gt;Type “install”, and select Extensions: Install Extensions.&lt;/li&gt;
&lt;li&gt;Type “flutter” in the extensions search field, select Flutter in the list, and click Install. This also installs the required Dart plugin.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Validate your setup with the Flutter Doctor
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Invoke View &amp;gt; Command Palette….&lt;/li&gt;
&lt;li&gt;Type “doctor”, and select the Flutter: Run Flutter Doctor.&lt;/li&gt;
&lt;li&gt;Review the output in the OUTPUT pane for any issues. Make sure to select Flutter from the dropdown in the different Output Options.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Android Studio
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Install Android Studio
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Download and install Android Studio : &lt;a href="https://developer.android.com/studio"&gt;https://developer.android.com/studio&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Start Android Studio, and go through the ‘Android Studio Setup Wizard’. This installs the latest Android SDK, Android SDK Command-line Tools, and Android SDK Build-Tools, which are required by Flutter when developing for Android.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Set up your Android device
&lt;/h3&gt;

&lt;p&gt;To prepare to run and test your Flutter app on an Android device, you need an Android device running Android 4.1 (API level 16) or higher.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enable Developer options and USB debugging on your device. Detailed instructions are available in the Android documentation; &lt;a href="https://developer.android.com/studio/debug/dev-options"&gt;https://developer.android.com/studio/debug/dev-options&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Windows-only: Install the Google USB Driver.&lt;/li&gt;
&lt;li&gt;Using a USB cable, plug your phone into your computer. If prompted on your device, authorize your computer to access your device.&lt;/li&gt;
&lt;li&gt;In the terminal, run the flutter devices command to verify that Flutter recognizes your connected Android device. By default, Flutter uses the version of the Android SDK where your adb tool is based. If you want Flutter to use a different installation of the Android SDK, you must set the ANDROID_SDK_ROOT environment variable to that installation directory.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Set up the Android emulator
&lt;/h3&gt;

&lt;p&gt;To prepare to run and test your Flutter app on the Android emulator, follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enable VM acceleration on your machine; &lt;a href="https://developer.android.com/studio/run/emulator-acceleration"&gt;https://developer.android.com/studio/run/emulator-acceleration&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Launch Android Studio, click the AVD Manager icon, and select Create Virtual Device…&lt;/li&gt;
&lt;li&gt;In older versions of Android Studio, you should instead launch Android Studio &amp;gt; Tools &amp;gt; Android &amp;gt; AVD Manager and select Create Virtual Device…. (The Android submenu is only present when inside an Android project.)&lt;/li&gt;
&lt;li&gt;If you do not have a project open, you can choose Configure &amp;gt; AVD Manager and select Create Virtual Device…&lt;/li&gt;
&lt;li&gt;Choose a device definition and select Next.&lt;/li&gt;
&lt;li&gt;Select one or more system images for the Android versions you want to emulate, and select Next. An x86 or x86_64 image is recommended.&lt;/li&gt;
&lt;li&gt;Under Emulated Performance, select Hardware - GLES 2.0 to enable hardware acceleration.&lt;/li&gt;
&lt;li&gt;Verify the AVD configuration is correct, and select Finish.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For details on the above steps, see Managing AVDs; &lt;a href="https://developer.android.com/studio/run/managing-avds"&gt;https://developer.android.com/studio/run/managing-avds&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Android Virtual Device Manager, click Run in the toolbar. The emulator starts up and displays the default canvas for your selected OS version and device.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Azure in Mobile Apps - Introduction to Flutter</title>
      <dc:creator>Aaron Kipkoech</dc:creator>
      <pubDate>Wed, 13 Jan 2021 15:46:55 +0000</pubDate>
      <link>https://dev.to/msambassadorske/azure-in-mobile-apps-introduction-to-flutter-3845</link>
      <guid>https://dev.to/msambassadorske/azure-in-mobile-apps-introduction-to-flutter-3845</guid>
      <description>&lt;p&gt;Hello and welcome to another blog in this series.&lt;br&gt;
This series is about implementing azure technologies into mobile apps. &lt;br&gt;
We'll be using flutter mobile sdk for the development, and hence the need for introduction.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is flutter?
&lt;/h2&gt;

&lt;p&gt;Flutter is an open-source UI software development kit used to develop applications for Android, iOS, Linux, Mac, Windows, Google Fuchsia, and the web from a single codebase. &lt;/p&gt;

&lt;p&gt;Easy right?&lt;br&gt;
Let's scoot over to the fun part!&lt;/p&gt;
&lt;h2&gt;
  
  
  How does flutter work?
&lt;/h2&gt;

&lt;p&gt;Flutter is built in a whole new way, compared to other frameworks, working more like a gaming engine, than a traditional application framework.&lt;br&gt;
From a very high level, your app is composed of Widgets(mark this), that are rendered onto a Skia canvas, and sent to the platform. The platform shows the canvas, and sends events back as required.&lt;br&gt;
Your app runs on the platform natively, Ahead of Time complied.&lt;/p&gt;

&lt;p&gt;Confused? No worries. Just note that flutter apps are composed of &lt;em&gt;widgets&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Widgets?
&lt;/h2&gt;

&lt;p&gt;A widget is a basic UI element. &lt;br&gt;
Lets take a look at some examples.&lt;br&gt;
&lt;em&gt;Example 1&lt;/em&gt; &lt;br&gt;
You want to add text to your app. You'll create a Text widget in flutter and pass in a string as a parameter like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Text('Hello world')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Example 2&lt;/em&gt;&lt;br&gt;
How to add a button. There are many types of buttons in flutter, FlatButton being among them. Let us create a FlatButtonWidget:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FlatButton(  
     child: Text('LogIn'),  
     color: Colors.blueAccent,  
     textColor: Colors.white,  
     onPressed: () {},  
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note the parameters of the Flatutton widget. We have a 'child' parameter with its value as a Text widget. This means we can nest other widgets as children inside other widgets. Cool right?&lt;br&gt;
Other parameters you can add are 'color', 'textColor' and 'onPressed' which is a function that will be triggered when the button is pressed. These parameters are separated by commas.&lt;/p&gt;
&lt;h2&gt;
  
  
  Creating a simple app
&lt;/h2&gt;

&lt;p&gt;Below is a flutter app code that displays 'hello world'&lt;/p&gt;

&lt;p&gt;&lt;em&gt;step 1&lt;/em&gt;&lt;br&gt;
This line of code imports dart material package that is responsible for providing all widgets.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import 'package:flutter/material.dart';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;step 2&lt;/em&gt;&lt;br&gt;
Creating the main method. This is the starting point of the app, and will be :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import 'package:flutter/material.dart';

void main() {

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;step 3&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The first function is the runApp() function, which accepts a Widget as parameter. Let's add it to the main method, and pass in a MaterialApp() widget. &lt;/li&gt;
&lt;li&gt;Flutter provides a number of widgets that help you build apps that follow Material Design. &lt;/li&gt;
&lt;li&gt;The &lt;em&gt;MaterialApp()&lt;/em&gt; widget provides all it's children widgets with these material design components.&lt;/li&gt;
&lt;li&gt;This widget takes in multiple parameters, but we'll stick to two in this case i.e title and home
The code becomes:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      title: ,
      home: ,
      ),
    ),
  );
}

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Step 4&lt;/em&gt;&lt;br&gt;
The &lt;em&gt;title&lt;/em&gt; parameter requires a string, which is basically the app's name.&lt;br&gt;
The &lt;em&gt;home&lt;/em&gt; parameter requires a widget, and acts more like the &lt;em&gt;child&lt;/em&gt; parameter.&lt;br&gt;
After filling in the string as title, we'll place a &lt;em&gt;Text&lt;/em&gt; widget into the home parameter.&lt;br&gt;
The resulting code will be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      title: 'MyApp',
      home: Text('Hello World'),
      ),
    ),
  );
}

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

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;step 5&lt;/em&gt;&lt;br&gt;
Let's run the app and see the results:&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%2Faskffyobufkm881fmyue.jpg" 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%2Faskffyobufkm881fmyue.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The UI is...&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0jf21vp9fkh3qs6smwpk.jpg" 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%2F0jf21vp9fkh3qs6smwpk.jpg" alt="The UI"&gt;&lt;/a&gt;&lt;br&gt;
          ... crappy.&lt;/p&gt;

&lt;p&gt;Let's see what we can do about that.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;step 6&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;em&gt;home&lt;/em&gt; parameter from the MaterialApp widget, let's add in a widget called a &lt;em&gt;Scaffold&lt;/em&gt; before the text, and add the text as it's child.&lt;/li&gt;
&lt;li&gt;The &lt;em&gt;Scaffold&lt;/em&gt; widget simply adds appBar, body and other necessary elements to the application. &lt;/li&gt;
&lt;li&gt;This prevents widgets placing themselves in unnecessary positions (as in the previous code), by specifying which part you want to place them. &lt;/li&gt;
&lt;li&gt;In this case, we want the text widget to be in the body.
Let's add it and see it in action:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;void main() {
  runApp(
    MaterialApp(
      title: 'MyApp',
      home: Scaffold(
        appBar: AppBar(),
        body: Text('Hello World'),
      ),
    ),
  );
}

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

&lt;/div&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%2F0ersbl55rov9zpoylbvh.jpg" 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%2F0ersbl55rov9zpoylbvh.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Now that's better.&lt;br&gt;
Now you understand how flutter works, I'll leave it there for you to absorb the content. &lt;br&gt;
Stick around to learn on how we can add more widgets to make more beautiful and interesting apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Building an app in flutter is easy. You can see how we created a simple layout in few lines of code. &lt;br&gt;
For further understanding of flutter, visit the official documentation site: &lt;a href="https://flutter.dev/docs" rel="noopener noreferrer"&gt;https://flutter.dev/docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next: Setting up your flutter environment. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Need for Cyber Security in Organizations</title>
      <dc:creator>Aaron Kipkoech</dc:creator>
      <pubDate>Fri, 02 Oct 2020 10:46:42 +0000</pubDate>
      <link>https://dev.to/msambassadorske/the-need-for-cyber-security-in-organizations-4802</link>
      <guid>https://dev.to/msambassadorske/the-need-for-cyber-security-in-organizations-4802</guid>
      <description>&lt;h2&gt;
  
  
  The need for cyber security
&lt;/h2&gt;

&lt;p&gt;The connected electronic information network has become an integral part of our daily lives. All types of organizations, such as medical, financial, and education institutions, use this network to operate effectively. They utilize the network by collecting, processing, storing, and sharing vast amounts of digital information. As more digital information is gathered and shared, the need to protect them becomes more vital.&lt;/p&gt;

&lt;p&gt;Cyber security is the ongoing effort to protect these networks and data from unauthorized use or harm. To ensure this is done, cyber professionals have to think and act like attackers, but work within the bounds of the law.&lt;/p&gt;

&lt;h2&gt;
  
  
  What organization data you ask?
&lt;/h2&gt;

&lt;p&gt;There are different types of organization data that we need to protect:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Traditional Data
&lt;/h3&gt;

&lt;p&gt;Corporate data include personnel information, intellectual properties, and financial data.&lt;br&gt;
&lt;strong&gt;Personnel information&lt;/strong&gt; includes application materials, payroll, offer letters, employee agreements, and any information used in making employment decisions. &lt;br&gt;
&lt;strong&gt;Intellectual property&lt;/strong&gt;, such as patents, trademarks and new product plans, allows a business to gain economic advantage over its competitors. &lt;br&gt;
This intellectual property can be considered a trade secret; losing this information can be disastrous for the future of the company. &lt;br&gt;
&lt;strong&gt;Financial data&lt;/strong&gt;, such as income statements, balance sheets, and cash flow statements of a company gives insight into the health of the company.&lt;br&gt;
All these are termed as &lt;em&gt;Traditional Data&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. IoT and Big Data
&lt;/h3&gt;

&lt;p&gt;IoT(Internet of Things) is a large network of physical objects, such as sensors and equipment that extend beyond the traditional computer network. All these connections lead to the exponential growth of data, creating a new interest in technology known as "Big Data".&lt;/p&gt;

&lt;h2&gt;
  
  
  Confidentiality, Integrity and Availability
&lt;/h2&gt;

&lt;p&gt;These are three important pillars of security in a company.&lt;/p&gt;

&lt;h3&gt;
  
  
  Confidentiality(Privacy)
&lt;/h3&gt;

&lt;p&gt;Company policies should restrict access to the information to authorized personnel and ensure that only those authorized individuals view this data. The data may be compartmentalized according to the security or sensitivity level of the information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Integrity
&lt;/h3&gt;

&lt;p&gt;Integrity is accuracy, consistency, and trustworthiness of the data during its entire life cycle. &lt;br&gt;
Data must be unaltered during transit and not changed by unauthorized entities. &lt;br&gt;
File permissions and user access control can prevent unauthorized access. Version control can be used to prevent accidental changes by authorized users. &lt;br&gt;
After a file is downloaded, you can verify its integrity by verifying the hash values from the source with the one you generated using any hash calculator. &lt;br&gt;
By comparing hash values, you can ensure that files have not been tampered with or corrupted during any transfer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Availability
&lt;/h3&gt;

&lt;p&gt;Maintaining equipment, performing hardware repairs, keeping operating systems and software up to date, and creating backups ensure the availability of the network and data to the authorized users. &lt;br&gt;
Plans should be in place to recover quickly from natural or man-made disasters. Security equipment or software, such as firewalls, guard against downtime due to attacks such as denial of service (DoS). &lt;br&gt;
Denial of service occurs when an attacker attempts to overwhelm resources so the services are not available to the users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Consequences of a Cyber Attack
&lt;/h2&gt;

&lt;p&gt;To protect an organization from every possible cyberattack is not feasible, for a few reasons. The expertise necessary to set up and maintain the secure network can be expensive. Attackers will always continue to find new ways to target networks. Eventually, an advanced and targeted cyberattack will succeed. The priority will then be how quickly your security team can respond to the attack to minimize the loss of data, downtime, and revenue.&lt;br&gt;
If an organization website or network has been breached, this could lead to leaked confidential documents, revealed trade secrets, and stolen intellectual property. The loss of all this information may impede company growth and expansion.&lt;/p&gt;

&lt;p&gt;The monetary cost of a breach is much higher than just replacing any lost or stolen devices, investing in existing security and strengthening the building’s physical security.&lt;br&gt;
The company may be responsible for contacting all the affected customers about the breach and may have to be prepared for litigation. With all this turmoil, employees may choose to leave the company. The company may need to focus less on growing and more on repairing its reputation.&lt;/p&gt;

</description>
      <category>security</category>
    </item>
  </channel>
</rss>
