🏞 Wallpaper app made with Jetpack Compose

Overview

WallUp β›°

Wallpaper finder and downloader app Demonstrate the Jetpack Compose UI using Unsplash API Made with ❀️ by Enes

UI Design 🎨

Thanks to Rian Hamidjoyo for Wallpaper App UI Design

Screens πŸ–Ό

Home Screen Detail Screen
Bookmark Screen Collection Screen

Prerequisites

  • API Key

To run the application, an API key from Unsplash should be supplied.

inside local.properties file add this line and Rebuild project. apiKey="Your API Key Here"

How to store API key? - Stackoverflow

Architecture 🧰

  • Single Activity No Fragment
  • MVVM Pattern

View: Renders UI and delegates user actions to ViewModel

ViewModel: Can have simple UI logic but most of the time just gets the data from UseCase.

UseCase: Contains all business rules and they written in the manner of single responsibility principle.

Repository: Single source of data. Responsible to get data from one or more data sources.

For more information you can check Guide to app architecture

Libraries πŸ› 

  • Kotlin - First class and official programming language for Android development.
  • Ktor Client - Ktor includes a multiplatform asynchronous HTTP client, which allows you to make requests and handle responses, extend its functionality with plugins (formerly known as features), such as authentication, JSON serialization, and so on. In this topic, we'll take an overview of the client - from setting it up to making requests and installing plugins.
  • Jetpack Compose - Jetpack Compose is Android’s modern toolkit for building native UI.
  • Coroutines - For asynchronous and more..
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • Flows - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • Room - Database Library
  • Compose Destinations - A KSP library that processes annotations and generates code that uses Official Jetpack Compose Navigation under the hood. It hides from you the non-type-safe and boilerplate code you would otherwise have to write.
  • Material Components for Android
    • Modular and customizable Material Design UI components for Android.
  • Dagger - Hilt - Dependency Injection Framework
  • Coil - Image loader library.

Package Structure πŸ—‚

.
.
.
β”œβ”€β”€ di                    # Hilt Dependency Injection
β”œβ”€β”€ feature_bookmark
β”œβ”€β”€ feature_collection
β”œβ”€β”€ feature_detail
β”œβ”€β”€ feature_home
β”œβ”€β”€ feature_splash
|    β”œβ”€β”€ data             # DTOs and repositories implementation
|    |
|    β”œβ”€β”€ domain           # Models, repositories and use cases
|    | 
|    └── presentation     # UI Components
β”œβ”€β”€ ui                    
|    β”œβ”€β”€ theme            # Compose Theme
|    |               
|    └── animation        # Animation Utils
|
β”œβ”€β”€ utils                 # Useful classes
|
└── WallUpApp.kt          # @HiltAndroidApp

Contribute 🀝

If you want to contribute to this app, you're always welcome!

License πŸ“„

Copyright 2022 Enes-Kayiklik

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Create Investigation Plan.md

    Create Investigation Plan.md

    This adds a rough step-based plan for a generic approach to investigating data for an incident, based on the NIST guide.

    I created this for work and thought it might be an idea to incorporate this here. It also covers partially both Analyze Evidence.md and Collect Evidence.md so maybe we could discuss how to merge that properly if this plan provides value :)

    opened by japhlange 1
  • [New-Playbook] T1052.001 - Exfiltration over USB

    [New-Playbook] T1052.001 - Exfiltration over USB

    • https://github.com/austinsonger/Incident-Playbook/blob/main/Playbooks/MITRE-ATTACK/Exfiltration/T1052%20-%20Exfiltration%20Over%20Physical%20Medium/T1052.001%20-%20Exfiltration%20over%20USB.md

    Checklist

    • [ ] Investigate
    • [ ] Remediate
    • [ ] Communicate
    • [ ] Recover
    Help Wanted New-Playbook Exfiltration Priority:HIGH 
    opened by austinsonger 1
  • Make codespell a mandatory test

    Make codespell a mandatory test

    This change removes the || true to make codespell a mandatory test and reverts three word changes (hda, keep-alives, keypair) and adds those words to the --ignore-words-list.

    opened by cclauss 0
  • [QUESTION] Typos discovered by codespell

    [QUESTION] Typos discovered by codespell

    Describe the Question

    $ codespell

    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:164: Virtural ==> Virtual
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:165: Virtural ==> Virtual
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:245: pass-thru ==> pass-through, pass through, passthrough
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:246: pass-thru ==> pass-through, pass through, passthrough
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:247: pass-thru ==> pass-through, pass through, passthrough
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:248: pass-thru ==> pass-through, pass through, passthrough
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:293: inluding ==> including
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:344: aci ==> acpi
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:345: aci ==> acpi
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:1282: coNETion ==> connection
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:1283: coNETion ==> connection
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:1284: coNETion ==> connection
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:1285: coNETion ==> connection
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:1344: Instal ==> Install
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:1345: Instal ==> Install
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:1346: Instal ==> Install
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:1347: Instal ==> Install
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:1582: sais ==> says
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:1583: sais ==> says
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:2428: Paradym ==> Paradigm
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:2429: Paradym ==> Paradigm
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:2690: SER ==> SET
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:2691: SER ==> SET
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:2897: disgnostics ==> diagnostics
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:3002: Composit ==> Composite
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:3003: Composit ==> Composite
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:3330: TE ==> THE, BE, WE, TO
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:3331: TE ==> THE, BE, WE, TO
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:3630: Messanger ==> Messenger
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:3631: Messanger ==> Messenger
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:4738: bre ==> be, brie
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:4739: bre ==> be, brie
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:4844: Messenging ==> Messaging
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:4845: Messenging ==> Messaging
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5245: contol ==> control
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5259: authenication ==> authentication
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5260: managment ==> management
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5261: managment ==> management
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5261: managment ==> management
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5270: Uninterruptable ==> Uninterruptible
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5271: Uninterruptable ==> Uninterruptible
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5280: Contol ==> Control
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5284: provids ==> provides, proves
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5285: provids ==> provides, proves
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5606: Pass-Thru ==> pass-through, pass through, passthrough
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5607: Pass-Thru ==> pass-through, pass through, passthrough
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5686: WAN ==> WANT
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:5687: WAN ==> WANT
    ./SIEM/Event-Codes-and-API-Event-Actions/ServicePorts.md:6694: Inferface ==> Interface
    ./SIEM/Event-Codes-and-API-Event-Actions/Windows/AUTORUNS.md:20: hda ==> had
    ./SIEM/Event-Codes-and-API-Event-Actions/Windows/AUTORUNS.md:20: HDA ==> HAD
    ./SIEM/Event-Codes-and-API-Event-Actions/Windows/Event-Codes.md:393: occured ==> occurred
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:37: FO ==> OF, FOR
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:365: occured ==> occurred
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:368: occured ==> occurred
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:368: attemtping ==> attempting
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:391: firware ==> firmware
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:403: ND ==> AND, 2ND
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:580: Keep-alives ==> Keep-alive
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:580: keep-alives ==> keep-alive
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:646: onthe ==> on the
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:648: keypair ==> key pair
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:1331: Keypair ==> Key pair
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:1982: FO ==> OF, FOR
    ./SIEM/Event-Codes-and-API-Event-Actions/Cisco/ASA.md:1983: FO ==> OF, FOR
    ./SIEM/Event-Codes-and-API-Event-Actions/Linux/Linux-Message-Dictionary.md:191: Usersapce ==> Userspace
    ./Playbooks/MITRE-ATTACK/Impact/T1491-Defacement-(T1491.001,T1491.002).md:308: occurr ==> occur
    ./Playbooks/MITRE-ATTACK/Exfiltration/T1052.001 - Exfiltration over USB.md:13: feasable ==> feasible
    ./Playbooks/Actions/01. Prepare (Pre-Event)/README.md:9: thats ==> that's
    

    Additional context Add any other context about the problem here.

    Question 
    opened by cclauss 0
  • Bug: ' Update Investigative Plan and Incident File.md' file name invalid on OneDrive

    Bug: ' Update Investigative Plan and Incident File.md' file name invalid on OneDrive

    Path: "Incident-Response/Incident-Response-Phases/01. Investigate/ Update Investigative Plan and Incident File.md"

    Unknown character at beginning of ' Update Investigative Plan and Incident File.md' is causing an invalid file name error after git clone on Windows systems with OneDrive enabled. Suggest renaming of file to remove initial unknown character.

    opened by co-devs 0
  • Bug: 'Rapid7 Insightconnect ' folder name invalid on Windows

    Bug: 'Rapid7 Insightconnect ' folder name invalid on Windows

    Path: "Automations/SOAR-Automations/Rapid7 Insightconnect /README.md"

    Space after 'Rapid7 Insightconnect' is causing an invalid path error during git clone on Windows systems. Suggest removal of space after 'Insightconnect'

    opened by co-devs 0
  • T1052.001

    T1052.001

    Hope again that it's good. Sadly not so much to do without going into to much detail for each operating system, which might be good idea for a later time. But for now it should give some good guidance :)

    Fixes #71

    opened by sn0b4ll 0
  • [IncidentResponseChange] ./Incident-Response/Tools/Loki should be resynced

    [IncidentResponseChange] ./Incident-Response/Tools/Loki should be resynced

    Describe the change you'd like A clear and concise description of what you want to happen.

    ./Incident-Response/Tools/Loki should be resynced from https://github.com/Neo23x0/Loki to resolve 14 of the 31 undefined name errors raised in our GitHub Actions.

    Additional context Add any other context or screenshots about the feature request here.

    Incident Response Change 
    opened by cclauss 0
  • Use ==/!= to compare constant literals (str, bytes, int, float, tuple)

    Use ==/!= to compare constant literals (str, bytes, int, float, tuple)

    We propose these changes because identity is not the same thing as equality in Python...

    $ python3

    >>> windows = "window"
    >>> windows += "s"
    >>> windows == "windows"
    True
    >>> windows is "windows"
    <stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
    False
    
    opened by cclauss 0
  • Use print() function in both Python 2 and Python 3

    Use print() function in both Python 2 and Python 3

    opened by cclauss 0
  • Add a Gitter chat badge to README.md

    Add a Gitter chat badge to README.md

    austinsonger/Incident-Playbook now has a Chat Room on Gitter

    @austinsonger has just created a chat room. You can visit it here: https://gitter.im/Incident-Playbook/community.

    This pull-request adds this badge to your README.md:

    Gitter

    If my aim is a little off, please let me know.

    Happy chatting.

    PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

    opened by gitter-badger 0
  • [New-Playbook] T1059.001 - PowerShell

    [New-Playbook] T1059.001 - PowerShell

    • https://github.com/austinsonger/Incident-Playbook/blob/main/Playbooks/MITRE-ATTACK/Execution/T1059.001%20-%20PowerShell.md

    Checklist

    • [ ] Investigate
    • [ ] Remediate
    • [ ] Communicate
    • [ ] Recover
    Help Wanted New-Playbook Execution Priority:MEDIUM 
    opened by austinsonger 0
  • [New-Playbook] T1059 - Command and Scripting Interpreter

    [New-Playbook] T1059 - Command and Scripting Interpreter

    • https://github.com/austinsonger/Incident-Playbook/blob/main/Playbooks/MITRE-ATTACK/Execution/T1059%20Command%20and%20Scripting%20Interpreter.md

    Checklist

    • [ ] Investigate
    • [ ] Remediate
    • [ ] Communicate
    • [ ] Recover
    Help Wanted New-Playbook Execution Priority:MEDIUM 
    opened by austinsonger 0
Owner
Enes KayΔ±klΔ±k
Android developer @yoorbit_app
Enes KayΔ±klΔ±k
New style for app design Online Flora Go Go App UI made in Jetpack Compose. πŸ˜‰ 😎

JetComposeLoginUI New style for app design Online Flora Go Go App UI made in Jetpack Compose. ?? ?? (Navigation Components, Dagger-Hilt, Material Comp

Arvind Meshram 95 Dec 22, 2022
New style for app design E-commerce Shop App UI made in Jetpack Compose.πŸ˜‰πŸ˜Ž

E-commerceShopAppUI-Android New style for app design E-commerce Shop App UI made in Jetpack Compose. ?? ?? (Navigation Components, Dagger-Hilt, Materi

Arvind Meshram 30 Jan 8, 2023
New style for app design and Movies App with Movies API JetMaxMovies made in Jetpack Compose.πŸ˜‰πŸ˜Ž

JetMaxMovie New style for app design and Movies App with Movies API JetMaxMovies made in Jetpack Compose. ?? ?? (Navigation Compose,Dagger-Hilt, Mater

Arvind Meshram 6 Jul 6, 2022
A diary app made by Jetpack Compose

Chinese ?? ComposeDiary A simple diary app build by Jetpack Compose, use navigation library for single activity implementation Tech Stack & Features P

RERERE 4 Jun 7, 2022
Online Furniture Shop App UI made in Jetpack Compose.

JetComposeFurnitureShopUI-Android Online Furniture Shop App UI made in Jetpack Compose with clean architecture... ?? ?? (Navigation Components, Dagger

Arvind Meshram 30 Dec 19, 2022
Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Yogi Dewansyah 13 Aug 31, 2022
Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Mobile Banking Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cach

Yogi Dewansyah 13 Aug 31, 2022
Lull is an Android mobile application made with Jetpack Compose, where you can download wallpapers.

Lull Lull is an Android mobile application made with Jetpack Compose, where you can download wallpapers. Table of Contents Features Screenshots Light

Simge Şengün 12 Oct 10, 2022
Resume of Louis CAD, made with Jetpack Compose. Supports the Web, Desktop, and Android.

ResumeComposition What This project is the source code of the resume/CV of Louis CAD. The latest PDF export is available here, it is ready to print. H

Louis CAD 22 Aug 14, 2022
android Sticky-TimeLineView that made with jetpack-compose

ComposeTimeLineView android Sticky-TimeLineView that made with jetpack-compose. Download implementation "io.github.jisungbin:timelineview:${version}"

Ji Sungbin 23 Dec 3, 2022
android multi-fab that made with jetpack-compose

ComposeMultiFab android multi-fab that made with jetpack-compose Download implementation "io.github.jisungbin:multifab:${version}" Usage @Composable f

Ji Sungbin 8 Dec 3, 2022
Luis David Orellana 11 Jan 1, 2023
JetStrap - Ready-Made Jetpack Compose Components

JetStrap Ready-Made Jetpack Compose Components Installation implementation "com.

Hyeonseo Yang 0 Jan 6, 2022
Faradle - Wordle made in Jetpack Compose

Faradle The famous Wordle game created with Jetpack Compose The logic is fully u

Adib Faramarzi 138 Oct 17, 2022
🌈 Palette - A color picker library made in Jetpack Compose

?? Palette A color picker library made in Jetpack Compose. Including in your project Gradle Add it in your root build.gradle at the end of repositorie

Shivam Dhuria 56 Dec 11, 2022
OTPView is a view made in Jetpack compose. It is highly customisable and can be used to show OTP view with different length and shapes.

OTPView OTPView is a highly costumizable OTP view made in the Jetpack compose UI. Usage: CircleOtpView is a sample composable that calls the OtpView w

kunalsale 17 Aug 4, 2022
This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Compose.

JetBMICalculator This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Co

BHAVNA THACKER 3 Dec 31, 2022
Learn Jetpack Compose for Android by Examples. Learn how to use Jetpack Compose for Android App Development. Android’s modern toolkit for building native UI.

Learn Jetpack Compose for Android by Examples. Learn how to use Jetpack Compose for Android App Development. Android’s modern toolkit for building native UI.

MindOrks 382 Jan 5, 2023
An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android.

ThinkRchive An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android. WORK IN PROGRESS GOALS: Use Ret

Racka98 81 Dec 16, 2022