{"id":15040877,"url":"https://github.com/ferhatozcelik/ferhatozcelik-core","last_synced_at":"2025-04-14T19:34:16.123Z","repository":{"id":230587297,"uuid":"779693740","full_name":"ferhatozcelik/ferhatozcelik-core","owner":"ferhatozcelik","description":"The Core Library is a comprehensive collection of utilities and extensions aimed at simplifying Android app development. Designed to streamline common tasks and enhance productivity, this library offers a wide range of features to support developers in building robust and efficient applications for the Android platform.","archived":false,"fork":false,"pushed_at":"2024-04-01T05:01:28.000Z","size":214,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T07:51:18.242Z","etag":null,"topics":["ads","android","android-app","android-development","android-library","core","esp32","esp8266","firebase","iot"],"latest_commit_sha":null,"homepage":"https://mvnrepository.com/artifact/com.ferhatozcelik","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ferhatozcelik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-30T14:44:11.000Z","updated_at":"2024-04-05T06:55:01.000Z","dependencies_parsed_at":"2024-04-06T05:00:36.260Z","dependency_job_id":null,"html_url":"https://github.com/ferhatozcelik/ferhatozcelik-core","commit_stats":null,"previous_names":["ferhatozcelik/ferhatozcelik-core"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferhatozcelik%2Fferhatozcelik-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferhatozcelik%2Fferhatozcelik-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferhatozcelik%2Fferhatozcelik-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferhatozcelik%2Fferhatozcelik-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ferhatozcelik","download_url":"https://codeload.github.com/ferhatozcelik/ferhatozcelik-core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248946421,"owners_count":21187503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ads","android","android-app","android-development","android-library","core","esp32","esp8266","firebase","iot"],"created_at":"2024-09-24T20:45:13.407Z","updated_at":"2025-04-14T19:34:16.099Z","avatar_url":"https://github.com/ferhatozcelik.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Core Library\n\n[![Core](https://img.shields.io/maven-central/v/com.ferhatozcelik/core.svg)](https://search.maven.org/artifact/com.ferhatozcelik/core)\n\nThe Core Library provides essential utilities and extensions to simplify Android app development.\n\n## Features:\n\n- **Extensions**: Provides extensions for common Android components to reduce boilerplate code.\n  - `ActivityExtensions`: Extensions related to activities.\n  - `ClickListeners.kt`: Extensions for click listeners.\n  - `ContextExtensions.kt`: Extensions related to context.\n  - `EditTextExtensions.kt`: Extensions for EditText.\n  - `FragmentExtensions.kt`: Extensions for fragments.\n  - `IntentExtensions.kt`: Extensions for intents.\n  - `StringExtension.kt`: Extensions for strings.\n  - `ValidationExtensions.kt`: Extensions for validation.\n  - `ViewExtensions.kt`: Extensions for views.\n\n- **In-App Update**: Integrates Google Play Core libraries' in-app updates feature to prompt active users to update the app within the app itself.\nIn-App Update:\nWhen your users keep your app up to date on their devices, they can try new features, as well as benefit from performance improvements and bug fixes. Although some users enable background updates when their device is connected to an unmetered connection, other users might need to be reminded to install updates. In-app updates is a Google Play Core libraries feature that prompts active users to update your app.\nFor more information on how to integrate in-app updates into your app, refer to the official documentation.\nhttps://developer.android.com/guide/playcore/in-app-updates\n\n## Installation:\n\nYou can include the Core Library in your project using Gradle.\n\n```groovy\n\nimplementation 'com.ferhatozcelik:core:latest'\n\nimplementation(\"com.ferhatozcelik:core:latest\")\n\n```\n\n# Firebase Integration for Android\n\n[![Firebase](https://img.shields.io/maven-central/v/com.ferhatozcelik/core.svg)](https://search.maven.org/artifact/com.ferhatozcelik/firebase)\n\n\n## Installation:\n\nYou can include the Firebase Library in your project using Gradle.\n\n```groovy\n\nimplementation 'com.ferhatozcelik:firebase:latest'\n\nimplementation(\"com.ferhatozcelik:firebase:latest\")\n\n```\n\nThis guide provides instructions on how to integrate Firebase Analytics, Remote Config, and Push Notification features into your Android app.\n\n## Firebase Analytics\n\nFirebase Analytics allows you to track user interactions with your app and provides insights into user behavior. You can track various events such as user actions, screen views, and more.\n\n### Usage:\n\nTo send an event analytics:\n\n```kotlin\nAnalytics(this).sendEventAnalytics(\"MainActivity\", \"onCreate\")\n\n```\n\n### Firebase Remote Config\nFirebase Remote Config enables you to dynamically change the behavior and appearance of your app without publishing an app update. You can define parameters and their default values in the Firebase console, and then fetch and activate them in your app.\n\n### Usage:\nTo fetch a remote config parameter:\n\n```kotlin\n\nval testParam = RemoteConfig.INSTANCE.getRemoteConfig\u003cString\u003e(\"custom_key\")\n\n```\n\n### Firebase Push Notification\nFirebase Push Notification allows you to send notifications to your app users. You can target specific devices or user segments and send personalized notifications.\n\n### Usage:\nTo initialize push notifications:\n\n```kotlin\n\nFirebaseFCM.instance.initializePushNotification(\n    context,\n    R.drawable.ic_launcher_foreground,\n    listOf(\n        Channel(\"test\", \"Test Channel\"),\n        Channel(\"test2\", \"Test Channel 2\")\n    )\n)\n\n```\n\n### To subscribe to a topic:\n\n```kotlin\n\nFirebaseFCM.instance.subscribeToTopic(\"test\")\n\n```\n\n### To remove a topic subscription:\n\n```kotlin\n\nFirebaseFCM.instance.removeFCMTopic(\"test\")\n\n```\n\n### Getting Started:\nAdd the Firebase SDK to your project.\nFollow the Firebase documentation to set up Firebase Analytics, Remote Config, and Push Notification services in your project.\nUse the provided code snippets to implement the desired functionality in your app.\n\nhttps://firebase.google.com/docs/analytics/get-started\nhttps://firebase.google.com/docs/remote-config\nhttps://firebase.google.com/docs/cloud-messaging\n\n### IOT Library for Android Things\n\n[![IOTl](https://img.shields.io/maven-central/v/com.ferhatozcelik/core.svg)](https://search.maven.org/artifact/com.ferhatozcelik/iot)\n\nThe IOT Library for Android Things provides utilities for managing IOT devices, particularly ESP8266-based devices, in Android Things projects.\n\n# ESP8266 and ESP32 Libraries for Arduino\n\nThese libraries provide utilities for working with ESP8266 and ESP32 microcontrollers using the Arduino framework.\n\n## Overview\n\nThe ESP8266 and ESP32 libraries offer a range of functionalities to simplify development for these popular microcontrollers. Whether you're working with Wi-Fi connectivity, GPIO control, or sensor interfacing, these libraries aim to streamline your development process.\n\nThis library simplifies the integration of ESP8266-based devices into your Android Things project, allowing you to manage Wi-Fi connections, retrieve sensor data, and handle various states.\n\n## Images\n\n\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/2/20/ESP32_Espressif_ESP-WROOM-32_Dev_Board.jpg\" alt=\"ESP32 Dev Board\" width=\"500\"\u003e\n\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/ESP8266_mounted_on_adapter.jpg/330px-ESP8266_mounted_on_adapter.jpg\" alt=\"ESP8266 Mounted on Adapter\" width=\"500\"\u003e\n\n### Initialization\n```kotlin\n\nprivate lateinit var eps8266WifiManager: Esp8266WifiManager\nprivate lateinit var esp8266DataManager: Esp8266DataManager\n\n// Initialize EPS8266WifiManager and Esp8266DataManager\neps8266WifiManager = Esp8266WifiManager.getInstance(requireContext())\neps8266WifiManager.setWifiStateListener(setWifiStateListener)\n\nesp8266DataManager = Esp8266DataManager.getInstance(requireContext())\nesp8266DataManager.setWifiDataListener(wifiDataListener)\n\n```\n\n### Connection Handling\n```kotlin\n\noverride fun onStop() {\n    super.onStop()\n    if (eps8266WifiManager.isWifiConnected()) {\n        eps8266WifiManager.disconnect()\n    }\n    esp8266DataManager.stopReadingData()\n}\n\n// Connect to Wi-Fi and start reading data\nif (!eps8266WifiManager.isWifiConnected()) {\n    eps8266WifiManager.connectToWifi(SSID, PASSWORD)\n} else {\n    esp8266DataManager.startReadingData()\n}\n```\n### Callbacks\n```kotlin\n\nprivate val setWifiStateListener = object : WifiStateListener {\n    override fun onWifiConnecting() {\n        // Handle Wi-Fi connecting state\n    }\n\n    override fun onWifiConnected() {\n        // Handle Wi-Fi connected state\n    }\n\n    override fun onWifiDisconnected() {\n        // Handle Wi-Fi disconnected state\n    }\n}\n\n\nprivate val wifiDataListener = object : WifiDataListener {\n    override fun onWifiDataReceived(data: Any) {\n        // Handle received Wi-Fi data\n    }\n\n    override fun onWifiDataError(error: String) {\n        // Handle Wi-Fi data error\n    }\n}\n```\n\n### Author\n👤 Ferhat OZCELIK\n\nGithub: @ferhatozcelik\nLinkedIn:https://www.linkedin.com/in/ferhatozcelik/\nShow your support\nGive a ⭐️ if this project helped you!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferhatozcelik%2Fferhatozcelik-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fferhatozcelik%2Fferhatozcelik-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferhatozcelik%2Fferhatozcelik-core/lists"}