<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Git on Israel Brea Piñero</title>
        <link>https://israelbreap-portfolio.pages.dev/tags/git/</link>
        <description>Recent content in Git on Israel Brea Piñero</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Thu, 10 Jul 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://israelbreap-portfolio.pages.dev/tags/git/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Pixora - Native Android App</title>
        <link>https://israelbreap-portfolio.pages.dev/p/pixora-android/</link>
        <pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate>
        
        <guid>https://israelbreap-portfolio.pages.dev/p/pixora-android/</guid>
        <description>&lt;img src="https://israelbreap-portfolio.pages.dev/p/pixora-android/pixora-android.png" alt="Featured image of post Pixora - Native Android App" /&gt;&lt;p&gt;Pixora is a native Android application developed as a Bachelor project for the Android Development subject of the Mobile Computing Master&amp;rsquo;s program at Universidad Pontificia de Salamanca. The application is inspired by platforms like Pinterest and allows users to explore, organize, and share visual content.&lt;/p&gt;
&lt;h2 id=&#34;features&#34;&gt;Features
&lt;/h2&gt;&lt;p&gt;The core functionalities of Pixora include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browse and viewing images.  &lt;/li&gt;
&lt;li&gt;Searching for images.  &lt;/li&gt;
&lt;li&gt;Creating personalized lists (collections) to organize images.  &lt;/li&gt;
&lt;li&gt;Liking images.  &lt;/li&gt;
&lt;li&gt;Uploading your own photos from the camera or gallery.  &lt;/li&gt;
&lt;li&gt;Viewing your activity feed, including liked photos and photos added to lists.  &lt;/li&gt;
&lt;li&gt;Viewing your uploaded photos.&lt;/li&gt;
&lt;li&gt;Change app Language.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;technical-details&#34;&gt;Technical Details
&lt;/h2&gt;&lt;p&gt;The application was developed using modern Android technologies and best practices in software architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Language and Framework&lt;/strong&gt;: Built entirely with Kotlin and Jetpack Compose, Google&amp;rsquo;s modern declarative UI toolkit, for a more concise, intuitive, and efficient development process.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Architecture&lt;/strong&gt;: A combination of MVVM (Model-View-ViewModel) and Clean Architecture was implemented to ensure a robust, scalable, and maintainable codebase. The project is clearly structured into Domain, Data, and Presentation layers. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Management&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Room&lt;/strong&gt;: Used for local data persistence of structured data like photos, user-created lists, and activity logs. It was chosen for its compile-time query verification and seamless integration with Flow.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Preferences DataStore&lt;/strong&gt;: Employed to store simple key-value data, such as user preferences for language and display mode (light/dark), offering a safe and asynchronous alternative to SharedPreferences.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Integration&lt;/strong&gt;: The Unsplash API was integrated to provide a vast catalog of high-quality images. Network requests are managed efficiently using Retrofit for declarative API definition and OkHttp for handling connections.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;External Libraries&lt;/strong&gt;: Key third-party libraries were used to enhance functionality:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hilt&lt;/strong&gt;: For dependency injection, ensuring a decoupled architecture. It was chosen over Koin for its compile-time safety and official recommendation by Google.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coil (Coroutine Image Loader)&lt;/strong&gt;: For fast and efficient asynchronous image loading and caching, with native support for Jetpack Compose.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lottie&lt;/strong&gt;: To render complex vector animations, used specifically for the initial splash screen.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kotlinx Serialization&lt;/strong&gt;: Utilized to enable type-safe navigation with Jetpack Compose Navigation, allowing entire objects to be passed as arguments. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Android Jetpack&lt;/strong&gt;: The application extensively uses components from Android Jetpack, including Navigation for managing app flow, Coroutines and Flow for asynchronous operations, and ViewModel for managing UI-related data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Animations&lt;/strong&gt;: Various animations were included to improve the user experience, such as a Lottie animation on the splash screen, smooth visibility transitions for the navigation bar, and interactive animations for the &amp;ldquo;like&amp;rdquo; gesture.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;publication&#34;&gt;Publication
&lt;/h2&gt;&lt;p&gt;The application was published on the Google Play Store as a closed test version.
Link to the Google Play Store: &lt;a class=&#34;link&#34; href=&#34;https://play.google.com/store/apps/details?id=com.ibrepidevs.pixora&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Pixora&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;project-repository&#34;&gt;Project Repository
&lt;/h2&gt;&lt;p&gt;The source code for this project is available on GitHub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/israelbrea12/Pixora-Android.git&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/israelbrea12/Pixora-Android.git&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;view-project-in-pdf&#34;&gt;View project in pdf
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;../../pixora-android.pdf&#34; &gt;Pixora-Android&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;video-pixora&#34;&gt;Video Pixora
&lt;/h2&gt;&lt;div class=&#34;video-wrapper&#34;&gt;
    &lt;iframe loading=&#34;lazy&#34; 
            src=&#34;https://www.youtube.com/embed/DYYbeGz09Fc&#34; 
            allowfullscreen 
            title=&#34;YouTube Video&#34;
    &gt;
    &lt;/iframe&gt;
&lt;/div&gt;

</description>
        </item>
        
    </channel>
</rss>
