<?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: enthusiastic developer</title>
    <description>The latest articles on DEV Community by enthusiastic developer (@celine).</description>
    <link>https://dev.to/celine</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%2F1102717%2F6bb5ec2e-fc24-472f-957b-1d121d00a251.jpg</url>
      <title>DEV Community: enthusiastic developer</title>
      <link>https://dev.to/celine</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/celine"/>
    <language>en</language>
    <item>
      <title>Frontend Technologies</title>
      <dc:creator>enthusiastic developer</dc:creator>
      <pubDate>Thu, 27 Jun 2024 20:59:15 +0000</pubDate>
      <link>https://dev.to/celine/frontend-technologies-511n</link>
      <guid>https://dev.to/celine/frontend-technologies-511n</guid>
      <description>&lt;h2&gt;
  
  
  Comparing Svelte and Vue.js:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;In frontend development world they are different and numerous frameworks and libraries that a developer can chose from. While ReactJS remains a popular choice and used by many developers and popular companies like Instagram ,Skype and Airbnb.Niche frameworks like Svelte and Vue.js offer unique features and advantages. This article delves into a technical comparison of Svelte and Vue.js highlighting their differences and what makes each of them appealing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Svelte: The Cybernetically Enhanced Framework
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnza2qy4l5w16zsntkb9b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnza2qy4l5w16zsntkb9b.png" alt="Svelte" width="76" height="42"&gt;&lt;/a&gt;&lt;br&gt;
Svelte is a relatively new framework that has gained traction for its radical approach to building user interfaces. Unlike traditional frameworks that perform much of their work in the browser Svelte shifts this work to the build step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No Virtual DOM&lt;/strong&gt;: Svelte compiles components into highly efficient imperative code that directly manipulates the DOM resulting in faster updates and reduced overhead.&lt;/li&gt;
&lt;li&gt;- &lt;strong&gt;Reactive Programming&lt;/strong&gt;: Svelte’s reactivity model is built into the language making state management straightforward and intuitive.&lt;/li&gt;
&lt;li&gt;- &lt;strong&gt;Simplicity&lt;/strong&gt;: The framework promotes simplicity and minimalism with less boilerplate code and a more approachable syntax.
&lt;strong&gt;Pros&lt;/strong&gt;:&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance&lt;/strong&gt;: Direct DOM manipulation means faster load times and better runtime performance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bundle Size&lt;/strong&gt;: Smaller bundle sizes due to the elimination of runtime overhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer Experience&lt;/strong&gt;: Clear and concise syntax making it easier for developers to learn and use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ecosystem&lt;/strong&gt;: As a newer framework Svelte has a smaller ecosystem compared to more established frameworks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community Support&lt;/strong&gt;: Limited community resources and third-party libraries.
&lt;strong&gt;A code snippet of how you start its project&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;npm create svelte@latest myapp&lt;/li&gt;
&lt;li&gt;cd myapp&lt;/li&gt;
&lt;li&gt;npm install&lt;/li&gt;
&lt;li&gt;npm run dev&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Vue.js: The Progressive JavaScript Framework
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Froym9f7koa4fzytsb0zm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Froym9f7koa4fzytsb0zm.jpg" alt="Image description" width="57" height="35"&gt;&lt;/a&gt;&lt;br&gt;
Vue.js created by Evan You...has become a favorite among developers for its flexibility and ease of integration. Vue can be adopted incrementally making it suitable for both small projects and large-scale applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Virtual DOM&lt;/strong&gt;: Vue uses a virtual DOM for efficient rendering and updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reactivity System&lt;/strong&gt;: Vue’s reactivity system is robust, providing a seamless way to manage state and updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Component-Based Architecture&lt;/strong&gt;: Encourages a modular approach, making code more reusable and maintainable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comprehensive Ecosystem&lt;/strong&gt;: Vue offers a rich set of tools, including Vue Router for routing and Vuex for state management.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Flexibility&lt;/strong&gt;: Can be used for simple projects or as a full-fledged framework for complex applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community and Ecosystem&lt;/strong&gt;: Strong community support and a wealth of plugins libraries and tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learning Curve&lt;/strong&gt;: Gentle learning curve with excellent documentation and tutorials.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Performance&lt;/strong&gt;: Slightly larger bundle size compared to Svelte though still very performant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complexity&lt;/strong&gt;: Can become complex when scaling up especially with state management in larger applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How you can start a vue.Js project&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;cd your-project-name&lt;/li&gt;
&lt;li&gt;npm install&lt;/li&gt;
&lt;li&gt;npm run dev&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What Makes Each Framework Stand Out?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Svelte&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Performance and Efficiency&lt;/strong&gt;: Ideal for projects where performance and small bundle size are critical.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modern Approach&lt;/strong&gt;: Appeals to developers who prefer a modern, compile-time approach to building web applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Vue.js&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Versatility and Maturity&lt;/strong&gt;: Suitable for a wide range of applications with its robust ecosystem and community.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer-Friendly&lt;/strong&gt;: Known for its ease of use and comprehensive documentation making it accessible to developers of all skill levels.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;#My HNG Internship Expectations with ReactJS&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
At HNG, where ReactJS is the framework of choice I am excited to dive deeper into frontend development, building scalable and efficient applications. I look forward to leveraging React's component-based architecture and virtual DOM for creating dynamic user interfaces. This internship is a fantastic opportunity to enhance my skills, collaborate with other passionate developers and contribute to impactful projects.&lt;br&gt;
At HNG working with ReactJS I am eager to embrace the challenges and opportunities ahead  enhancing my expertise in frontend development and contributing to innovative solutions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hng.tech/internship" rel="noopener noreferrer"&gt;(https://hng.tech/internship)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hng.tech/hire" rel="noopener noreferrer"&gt;(https://hng.tech/hire)&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Mobile Development</title>
      <dc:creator>enthusiastic developer</dc:creator>
      <pubDate>Thu, 27 Jun 2024 19:51:43 +0000</pubDate>
      <link>https://dev.to/celine/mobile-development-d49</link>
      <guid>https://dev.to/celine/mobile-development-d49</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;Mobile Development Platforms&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Native Development platforms 
This platforms is divided into two:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;iOS Development:
Languages: Swift, Objective-C
Frameworks: UIKit, SwiftUI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqshtl684gq7i8u41s1d.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqshtl684gq7i8u41s1d.jpeg" alt="Ios " width="275" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Android Development
Languages: Java, Kotlin
Frameworks: Android SDK&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyuo12vhaghcpnx66ksx1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyuo12vhaghcpnx66ksx1.png" alt="Android Apps" width="311" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cross-Platform Development Platforms
This platforms includes building mobile applications that and be used in both Android and IoS platforms &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpcuwnxj3gqov7trwb1uu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpcuwnxj3gqov7trwb1uu.png" alt="Cross-platform apps" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Language: JavaScript&lt;br&gt;
Framework: React Native&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2kkc3l8uo66pbfzz4uhi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2kkc3l8uo66pbfzz4uhi.jpg" alt="React Native apps" width="780" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Language :Dart&lt;br&gt;
Framework:Flutter&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10kxm4rn1hssrfidqma2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10kxm4rn1hssrfidqma2.png" alt="Flutter apps" width="800" height="646"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;SOFTWARE ARCHITECTURE PATTERNS USED IN MOBILE DEVELOPMENT PLATFORMS WITH THERE PROS AND CONS&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;1. Model-View-Controller (MVC)&lt;/u&gt;&lt;br&gt;
This Divides the application into three interconnected components which are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model: Manages the data and business logic.&lt;/li&gt;
&lt;li&gt;View: Displays the data and sends user commands to the controller.&lt;/li&gt;
&lt;li&gt; Controller: Interprets user inputs and updates the model and view.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Separation of concerns making the code base easier to manage and test.&lt;/li&gt;
&lt;li&gt; Re-usability of the model and view components.&lt;/li&gt;
&lt;li&gt;  Simple to understand and implement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can lead to a "Massive View Controller" problem, where the controller becomes too large and complex.&lt;/li&gt;
&lt;li&gt;Tightly coupled components can make changes harder.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;2. Model-View-Presenter (MVP)&lt;/u&gt;&lt;br&gt;
This is an evolution of MVC where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model: Manages the data.&lt;/li&gt;
&lt;li&gt;View: Displays the data and sends user actions to the presenter.&lt;/li&gt;
&lt;li&gt; Presenter: Acts as a middleman between the view and the model, handling all the presentation logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better separation of concerns compared to MVC.&lt;/li&gt;
&lt;li&gt; Presenter is easier to test because it does not depend on Android/iOS framework components.&lt;/li&gt;
&lt;li&gt; Views are more focused on displaying data and less on handling logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can result in a lot of boilerplate code.&lt;/li&gt;
&lt;li&gt;Presenter can become very large and complex.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;3. Model-View-View-Model (MVVM)&lt;/u&gt;&lt;br&gt;
This architecture divides the application into:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Model: Represents the data and business logic.&lt;/li&gt;
&lt;li&gt;View: Displays the data.&lt;/li&gt;
&lt;li&gt;View Model: Acts as a link between the view and the model, providing data to the view and handling user interactions.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear separation of responsibilities which makes the code easier to manage and test.&lt;/li&gt;
&lt;li&gt; Supports data binding which reduces boilerplate code in the view.&lt;/li&gt;
&lt;li&gt; View Model is easy to test because it does not depend on the view.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can be more complex to implement compared to MVC and MVP.&lt;/li&gt;
&lt;li&gt;Data binding can add a layer of indirection, making debugging more difficult.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;4. Clean Architecture&lt;/u&gt;&lt;br&gt;
This emphasizes on separation of concerns by organizing the code into multiple layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Entities: Represent the core business logic.&lt;/li&gt;
&lt;li&gt;Use Cases/Interactions: Encapsulate specific business rules.&lt;/li&gt;
&lt;li&gt; Interface Adapters: Convert data from the use cases to a form that the external systems can use.&lt;/li&gt;
&lt;li&gt;Frameworks and Drivers: External components like databases, UI, and external APIs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High level of separation of concerns which makes the code base highly maintainable and testable.&lt;/li&gt;
&lt;li&gt; Each layer is independent, which improves code modularity.&lt;/li&gt;
&lt;li&gt;  Facilitates easier testing of individual components.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can be overkill for small projects.&lt;/li&gt;
&lt;li&gt;Involves a steep learning curve and more boilerplate code.&lt;/li&gt;
&lt;li&gt;Requires careful planning and design.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;#&lt;strong&gt;Little about myself&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
I am a passionate woman diving into mobile development with React Native. Joining the HNG Internship, I seek to hone my skills, gain real-world experience, and collaborate with like-minded individuals. This journey is a stepping stone to my dream of creating impactful mobile applications.&lt;br&gt;
&lt;a href="https://hng.tech/internship" rel="noopener noreferrer"&gt;(https://hng.tech/internship)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://hng.tech/hire" rel="noopener noreferrer"&gt;(https://hng.tech/hire)&lt;/a&gt;&lt;/p&gt;

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