<?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 Ebuka</title>
    <description>The latest articles on DEV Community by Victor Ebuka (@victorebuka).</description>
    <link>https://dev.to/victorebuka</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%2F1079028%2Fa6daa4bd-7afd-4917-894b-9c650885aa9b.jpeg</url>
      <title>DEV Community: Victor Ebuka</title>
      <link>https://dev.to/victorebuka</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/victorebuka"/>
    <language>en</language>
    <item>
      <title>Native App Development VS Cross-platform Development: Which should I go for?</title>
      <dc:creator>Victor Ebuka</dc:creator>
      <pubDate>Mon, 08 May 2023 15:49:25 +0000</pubDate>
      <link>https://dev.to/victorebuka/native-app-development-vs-cross-platform-development-which-should-i-go-for-39ao</link>
      <guid>https://dev.to/victorebuka/native-app-development-vs-cross-platform-development-which-should-i-go-for-39ao</guid>
      <description>&lt;p&gt;Are you a developer that’s looking to enter the world of Mobile App development? Are you an individual looking to start a business and you need to build mobile apps for your business? If this is you, then you’re at the right place.&lt;/p&gt;

&lt;p&gt;If you’ve taken a look at the title and are still wondering "What’s the difference between Native Development and Cross-platform development?", don’t worry. I am going to make this as simple to understand as possible.&lt;/p&gt;

&lt;p&gt;Let’s say you have an idea about a solution to a problem and you want to build a company around it. Let’s also assume that you want to build a Mobile app for it. You have 2 options:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 1: Hire an Android developer to build the Android app(for your users that use Android phones) and another iOS developer that will build the iOS app (for your users that use iPhones).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Why? That's because we have 2 major types of Operating systems for Mobile devices which are: Android and iOS.&lt;/p&gt;

&lt;p&gt;So, if you hire only an Android developer, he’ll write code and build an app for only your Android users that use Android devices. This means that your potential iOS users will be left out. They won’t be able to use your app. This is why you’ll have to also hire an iOS developer to build an iOS app for your iOS users.&lt;/p&gt;

&lt;p&gt;But this is very expensive. Hiring 2 developers can be throat-cutting especially if you have very little money to spare, seeing as you’re just starting out.&lt;/p&gt;

&lt;p&gt;This brings us to the What-Ifs. What if you could hire just one developer that will be able to build for both your Android users and iOS users? This developer is not going to build 2 separate codebases for Android &amp;amp; iOS. He's only going to write one codebase that can be used for both Android &amp;amp; iOS. Awesome, right?&lt;/p&gt;

&lt;p&gt;This way, you'll no longer need to pay 2 separate developers. Now, this is where your second option comes in - CROSS-PLATFORM DEVELOPMENT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 2: Your second option will be to hire just one cross-platform developer that will write just one codebase that can be used for both Android &amp;amp; iOS.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The developer will only need to build an app that can work on both Android &amp;amp; iOS.&lt;/p&gt;

&lt;p&gt;I'm very confident that you now understand what Native Development and Cross-platform development is.&lt;/p&gt;

&lt;p&gt;Now, let's talk about their differences and draw some conclusions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro's of Native Development&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Native Development gives you broader functionality because you'll have access to every tool or API needed to build your app for the specific platform (be it Android or iOS).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Native Development affords you high and maximum performance. I've spent the last 3 years actively developing Native apps and I've built many Cross-platform apps too, and I can tell you that performance is better with Native apps. Transition between screens is really fast as well as general performance of the app.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Native Development provides better Store Performance. Native apps on the store(be it Google Playstore or the App store). Native apps receive greater priority and are ranked higher on the platform's store.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Cons of Native Development&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Development is very costly. This is because you'll have to employ 2 developers - 1 to build for Android devices and another to build for iOS devices. This is a lot of money and not many startups and people can afford this.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Native Development consumes a lot of time. This is because you'll have two teams in most cases, because you can't use the same codebase for the Android app in place of the iOS. Writing codebases for the 2 platforms can take a lot of time to build, lengthening the time you are supposed to release your product to the market.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, let's talk about the Pros and Cons of Cross-platform development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro's of Cross-platform Development&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Cross-platform is less expensive than Native Development. Because you'll only need to hire just one developer or a team to build one codebase, you don't have to spend as much money as you'll spend if you were building Native apps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Development is faster. Because you're dealing with either one team or a developer, development is usually faster.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Just One Codebase. One codebase makes things easier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Con’s of Cross-platform Development&lt;/strong&gt;&lt;br&gt;
One of the downsides of Cross platform development is that you'll usually risk sacrificing quality in the process.&lt;/p&gt;

&lt;p&gt;For starters, you'll most likely have a slow app. Most of the API's that you'll usually have access to like Camera, files, Geolocation, etc on Native apps will not by default be easily available or accessible in Cross-platform development. This makes some level of abstraction necessary because these features are not natively supported.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The UX experience difference between Native and Cross-platform development is very clear. If you've developed an app with Native Development tools and developed the same app with Cross-platform tools, you'll notice that the UX of these apps are barely the same. They can't deliver the same user experience accustomed to the platform (be it Android or iOS).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;When should I choose Native Development or Cross-platform development?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Complex is your app?&lt;/strong&gt;&lt;br&gt;
If your app just needs to read data from external sources through network requests, then Cross-platform is your guy. But if your app requires access to Low-level API's like Bluetooth, then Native Development should be your Go To.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'm on a very Low Budget&lt;/strong&gt;&lt;br&gt;
If you're looking to save money and know that you cannot afford to hire different developers to build Native apps, then you should go for Cross-platform.&lt;/p&gt;

&lt;p&gt;Most startups are usually on a budget and are looking to cut costs as much as they can. This is why most startups go for Cross-platform development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I have very Limited Time&lt;/strong&gt;&lt;br&gt;
If you're looking to get together an MVP as quickly as possible, Cross-platform is your guy. Cross-platform will help save you time and come up with a working app in the shortest time possible.&lt;/p&gt;

&lt;p&gt;I really hope you've been able to understand what Native Development is as well as Cross-platform development. I also hope that you've been able to distinguish between them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AN EXTRA FOR DEVELOPERS:&lt;/strong&gt; I've had a lot of developers (transitioning into the world of Mobile App development) ask me which they should go for and my answer has always been pretty straightforward.&lt;/p&gt;

&lt;p&gt;If you're looking to get a job as quickly as possible and make a quick buck, then you should go for Cross-platform, seeing as most startups go for this option in order to save cost.&lt;br&gt;
But if you really want to learn the intricacies of Mobile development and are just having fun, then you should go for Native Development. It'll be much easier to transit into Cross-platform development as it was for me.&lt;/p&gt;

&lt;p&gt;If you want to Learn how to get started building Android apps, you should check out this article that I wrote &lt;a href="https://medium.com/@victorrebuka/the-easy-peasy-guide-learn-how-to-start-building-android-apps-abe4dca305bf"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I hope that you now have better insight on which to go for if you are ever faced with the choice of either forms of development.&lt;br&gt;
Don’t forget to toss in some claps if you found this article useful.&lt;/p&gt;

&lt;p&gt;Check out my socials.&lt;br&gt;
&lt;a href="https://github.com/VhiktorBrown"&gt;Github&lt;/a&gt;, &lt;a href="https://twitter.com/victorrebuka"&gt;Twitter&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/chukwujekwu-ebuka-9191a9239"&gt;LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>development</category>
      <category>android</category>
      <category>ios</category>
    </item>
    <item>
      <title>The ABC Guide to understanding API's without the Technical Jargons.</title>
      <dc:creator>Victor Ebuka</dc:creator>
      <pubDate>Mon, 08 May 2023 15:32:52 +0000</pubDate>
      <link>https://dev.to/victorebuka/the-abc-guide-to-understanding-apis-without-the-technical-jargons-4m0k</link>
      <guid>https://dev.to/victorebuka/the-abc-guide-to-understanding-apis-without-the-technical-jargons-4m0k</guid>
      <description>&lt;p&gt;Without API's, applications would be nothing more than just static screens that display dormant texts.&lt;/p&gt;

&lt;p&gt;Let me break it down this way. On your Whatsapp application, you're able to perform certain actions and when you perform these actions, your contacts are able to see these changes. For example, when you change your profile picture, your contacts immediately see this change. When you send a Meme or sticker to your friend, he or she gets this message immediately (if you have a strong internet connection).&lt;/p&gt;

&lt;p&gt;What makes all of this possible? I'll tell you: WhatsApp's API.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9eiMgLL0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jtkl0dkjbelr77v98l2r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9eiMgLL0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jtkl0dkjbelr77v98l2r.jpg" alt="Image description" width="474" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you find yourself still wondering what an API is, don't worry. I'll break this further for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M_Xx2Mpa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g9u9k7f2anvscpmafo2e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M_Xx2Mpa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g9u9k7f2anvscpmafo2e.jpg" alt="Image description" width="235" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE API-WAITER ANALOGY&lt;/strong&gt;&lt;br&gt;
Let's use this very popular explanation. Say you go to a restaurant and you want to order. You go through the menu and you see a dish that you like. You signal to the waiter and inform him of the exact dish that you want. He goes to the kitchen and informs the cook who then gives him the dish, which the waiter gives to you.&lt;/p&gt;

&lt;p&gt;In this scenario, you did not care how the food was gotten or prepared. All you did was make the request and the waiter did the rest for you, right? Relating this to an API, you are the Mobile application that needs data, the waiter is the API and the cook/kitchen is the database or data store(where the information needed by the application is stored).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOW, LET'S COME BACK TO REALITY&lt;/strong&gt;&lt;br&gt;
Let's relate this to real life. We'll use Medium as an example. If you have the Medium app and you open up the app, you'll be taken straight to the Homepage where there's like a loading Carousel that seems to be fetching or waiting for information, right?&lt;/p&gt;

&lt;p&gt;Let's go through what happens during this period where the Homepage is loading. Right there, the App(Medium) asks its API: "Hey, what's up dude? I need me some personalized content for this currently logged in user so I can display some articles to her".&lt;/p&gt;

&lt;p&gt;Then the API goes: "Alright buddy. Let me go to the Database and ask for her history and see the kind of things she's been reading lately so I can know the kind of content to ask the Database for".&lt;/p&gt;

&lt;p&gt;After the API finds this data the Mobile app asked for, it sends it back to the app which then displays it.&lt;br&gt;
The same goes for when you try to view your profile, the app asks the API to fetch your Profile details which the API fetches from the database and returns back to the app to be displayed for you to see.&lt;/p&gt;

&lt;p&gt;Without the API, the app will be dataless(if there's ever a word like that). No data, just a bunch of buttons and screens that do nothing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WRR1Rh7b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qi892j2h4deqxfwyls8o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WRR1Rh7b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qi892j2h4deqxfwyls8o.jpg" alt="Image description" width="229" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the relationship between an API and an application. An API is what allows you to send messages to your friends on WhatsApp and they get it immediately. An API makes it possible to view a WhatsApp status that was posted a minute ago. It's able to take that picture or video you uploaded through your WhatsApp status to the database to be stored or saved so your contacts can be able to see it.&lt;/p&gt;

&lt;p&gt;I believe that you now understand that without API's, mobile apps will be nothing more than just empty screens with textviews, buttons and icons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEVER FORGET WHO YOUR ERRAND BOY IS&lt;/strong&gt;&lt;br&gt;
So, think of an API as a middleman or an errand boy that helps applications to communicate with other/external applications, databases or servers.&lt;/p&gt;

&lt;p&gt;Please, note that API use is not only limited to Mobile apps(I use Mobile apps a lot because that's my area of specialty). It's used for Websites, as well as desktop apps and other API's too.&lt;/p&gt;

&lt;p&gt;I believe that you now understand what an API is and does. In this article, I tried to explain the concept of API's in very simple, plain English without the technical Jargon.&lt;/p&gt;

&lt;p&gt;In my next article, you'll be learning about the types of API's in more technical terms and in subsequent ones, you'll be learning how to consume API's in your Mobile app with ready-to-use codes.&lt;/p&gt;

&lt;p&gt;Till we meet again, Gracias. Don't forget to leave a like if you found this article helpful.&lt;br&gt;
Follow me on:&lt;br&gt;
&lt;a href="https://github.com/VhiktorBrown"&gt;Github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/victorrebuka"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/chukwujekwu-ebuka-9191a9239"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
