Android app source files
14 Способов сделать вклад в открытое программное обеспечение, не будучи Гениальным Программистом или Рок-Звездой
Множество людей хотят влиться в open source, но не знают с чего начать. Вот несколько способов, которые помогут, даже если вам недостаёт технических знаний и способностей.
Открытое программное обеспечение изменило мир, и многие хотят внести свой вклад. К сожалению, люди ужасаются от барьера на вступление в open source проект. Я часто слышу от людей, которые хотят помочь, но не могут:
«Я не очень хороший программист.»
«Я не смогу выделять достаточно времени.»
«Я не знаю к какому проекту подключится.»
Существует 3 основных принципа, которые следует помнить, если вы ищете возможность внести свой вклад:
Проектам нужны люди с любым уровнем знаний и опыта.
Маленький вклад лучше, чем никакой.
Если не знаешь с чего начать — начни с того, что используешь!
Среди новичков самая разрушительная мысль которую я наблюдал — мнение что для вклада в open source ты должен быть гениальным разработчиком. Это не так! Конечно, есть некоторые «рок-звёзды» в open source и они даже могут быть гениальными программистами. Тем не менее, подавляющее большинство таковыми не являются! Мы просто люди которые делают своё дело. Иногда мало, иногда много. Иногда это программирование, а иногда и нет.
Большинство из того, что делает open source это работа и время потраченное на проект. Большинство таких вещей не требуют интеллекта или взгляда как у Ларри Уолла, создателя Perl’а, или Давида Ханссона, создателя Rails. Для разработки нового языка программирования или web-фреймворка вдохновение надо, но остальное, что делает проекты уровня Perl и Rails успешными — тяжкий труд. За это вы, возможно, и не получите славу, но всё равно необходимо и через какое-то время ваш вклад будет замечен.
Прислушайтесь к другим
Всё в open source включает себя других людей. Желание присоединиться к команде значит, что ты понимаешь сообщество проекта и как в нём всё крутится. Прогулка в проект со словами «Привет! Я думаю что делать следует вот так.», как правило, не расценивается хорошим тоном. Некоторые проекты может и приветствуют такого рода подход, но если проект уже устоявшийся, такой подход имеет мало шансов на успех. Слушать — это лучший способ узнать в чём проект нуждается.
Списки рассылок: Для многих проектов, списки рассылок являются основным каналом связи по разработке проекта. У больших проектов есть много рассылок и есть из чего выбрать. К примеру, для PostgreSQL существует не менее 12 рассылок для пользователей и 6 для разработчиков. Я предлагаю подключится к основной рассылке как для пользователей, так и для разработчиков, чтобы начать слушать.
Подпишитесь на блог: Блоги которые ведут основные разработчики часто полны информацией про будущие релизы. Существуют агрегаторы новостей и блогозаписей проекта. Если такой сайт есть, к примеру planet.gnome.org или planet.mysql.com, начните оттуда. Попробуйте поискать в Google «planet ».
Подключитесь к IRC каналу: Многие open source проекты имею IRC-каналы где разработчики и пользователи зависают для обсуждения разработки и решения проблем. Посмотрите на странице проекты как называется канал и в какой сети IRC он находится. (прим. перев. Как показывает практика самой популярной сетью есть Freenode, а потом — собственные серверы проектов. Не редки случаи запуска собственных серверов Jabber и конференций.)
Работа с ошибками
Код — сердце практически любого open source проекта, но не думайте что писать код это единственная возможность сделать вклад. Поддержкой кода и системы в целом часто пренебрегается в погоне за новыми возможностями и исправлениями ошибок. Осмотритесь, возможно это ваш путь вступления в проект.
Большинство проектов имеют публичные, видимые для всех, системы отслеживания ошибок, связанные со страницей проекта и документацией. Это второй важный канал связи между разработчиками и пользователями. Поддержание его в актуальном состояние это отличный способ помочь проекту. Возможно, вам понадобятся дополнительные полномочия, которые большинство руководителей будут рады вам дать, если вы изъявите желание помочь.
Диагностика ошибок: Ошибки часто имеют плохое описание. Диагностика и сортировка ошибок сильно помогут разработчикам (даже более того, сэкономят им время) в определении в чём же действительно проблема. Если пользователь сообщает, что «Приложение не работает когда я делаю X», потратьте немного время что бы уточнить что именно идёт не так. Ошибку можно воспроизвести? Можно сделать пошаговый мануал по проблеме? Можно ли сузить проблему: воспроизводится только в одном браузере, работает только в некоторых дистрибутивах? Если да, то в каких?
Даже если вы не знаете в чём именно проблема, затраченные усилия помогут кому-то уточнить или даже решить проблему. Заносите всё что вы нашли по проблеме в bug-трекер, что бы все имели доступ к актуальной информации.
Закрывайте исправленные тикеты: Часто в коде ошибки уже исправлены, но запись в bug-трекере ещё есть. Зачистка этого «хлама» может занять уйму времени, но принесёт неоценимый вклад для всего проекта.
Начните с поиска старых записей и посмотрите, действительно ли ошибка ещё присутствует. Проверьте, возможно в новых релизах ошибка уже исправлена и запись может быть закрыта. Если известно что исправлено — укажите версию и можете закрывать.
Если явных следов исправления нет — попробуйте воссоздать ошибку на новых версиях. Если не воспроизводится — откомментируйте тикет и закройте. При наличии ошибки отметьте это, но, оставьте открытым.
Программисты с любым уровнем знаний и опытом могут помочь проекту. Не думайте что надо быть настоящим гением для существенного вклада в проект.
Если ваша работа включает изменение кода, посмотрите в какой форме происходит передача кода в проект. У каждого проекта свой рабочий процесс, поэтому уточните как правильно делать прежде чем отправлять код.
К примеру для PostgreSQL процесс очень строгий: модификации кода, в виде заплатки, отправляются в список рассылок разработчикам, где они изучают каждый аспект изменений. С другой стороны, есть проекты, такие как Parrot, в которых очень просто получить привилегию делать commit в основную ветку кода. Если проект использует GitHub, вероятно рабочий процесс основан на системе pull-запросов. Нет двух одинаковых проектов!
Всякий раз когда вы изменяете код, следите что бы вы действовали как ответственный участник сообщества и ваш код соответствовал стилю всего остального проекта. Добавленный или изменённый вами код не должен отличаться от остального! Вам может и не нравится использование текущего стиля скобок или пробелов для создания отступов, но это грубо когда вы добавляете код, который не соответствует стандарту. Это тоже самое: «Мне не нравится ваш стиль, мой лучше, делайте как я.»
Тестируйте: Почти все проекты предназначенные для использования на нескольких платформах могут иметь проблемы переносимости. Когда релиз скоро и бета- или релиз-кандидат- версии готовы, руководитель проекта надеется что проект будет тестирован разными людьми в разных условиях. Вы можете быть именно таким человеком и проверить что на вашей платформе пакет работает правильно.
Как правило, нужно лишь скачать, собрать и начать использовать приложение. Но вклад может быть огромен если у вас непопулярная платформа или аппаратное обеспечение (прим. перев. К примеру помочь разработчикам nouveau сделать поддержку современной видеокарты, что переводчик и сделал летом.). Просто комментарий о том, что сборка и испытания прошли успешно, дают знать что предстоящий релиз проверен и может быть опубликован.
Исправляйте ошибки: Это, как правило, путь для людей которые хотят сразу влиться в код. Тут всё просто: ищем интересную ошибку в bug-трекере и исправляем её в коде. Документируем исправления в коде, если это принято.
Хорошая идея — это создание тестов для кода, который вы исправили; а некоторые проекты даже требуют исправление ошибок с тестами! Возьмите блокнот и ручку для записей при копании в незнакомом коде. Даже если вы не можете исправить ошибку, запись в bug-трекере это отметка что вы пытались сделать. Это поможет другим, кто придёт после вас.
Пишите тесты: Большинство проектов имеют наборы тестов, но сложно себе представить такой набор, в котором больше нечего тестировать. Используйте такие инструменты для исследования покрытия кода как gcov для C или Devel::Cover для Perl. А затем, добавьте тесты для улучшения покрытия.
Заставьте замолчать компилятор: Процесс сборки для проектом на C часто сопровождается странными предупреждениями компилятора. Эти предупреждения редко показывают на реальную проблему, но они могут так выглядеть! Да и слишком много предупреждений делает компилятор похожим на ноющего ребёнка.
Убедитесь что код действительно содержит ошибку. Если нет, исправьте код так что бы избавиться от ложного срабатывания (или, не совсем ложного).
Добавьте комментарии: Если вы копаетесь в чужом коде, вы часто находите места которые вас сбивают с толку. Если даже вас он сбивает, то какие чувства у остальных на этом месте? Сделайте полезный комментарий и отправьте заплатку.
Работа с документацией
Документация это важная часть любого проекта. Она может страдать от того, что была написана с точки зрения человека знакомого с проектом, а не глазами человека, который только хочет туда попасть. Если вы когда-то читали документацию с мыслью «Он что, думает что я знаю как это делать?» то вы понимаете о чём я говорю. Свежий взгляд всегда благотворно влияет на документацию и указывает на недостатки, которые остальные уже не замечают.
Создавайте примеры: Нет ни одного проекта в котором достаточно примеров. Web-API, библиотеки, графические приложения (такие как, GIMP) или командные утилиты, для всех них хороший пример лучше покажет использование, чем сухая документация.
Для API или библиотеки не лишним будет написать приложение которое её использует. Это могут быть даже куски ранее написанного кода с отсечением всего ненужного. Живой пример использования в повседневной жизни также будет не лишним! Если приложение графическое — рассмотрите создание скрин-каста разных процессов.
Работа с сообществом
Открытое программное обеспечение это только отчасти код. Сообщество, вот что движет им. Вот способы которым вы можете тут помочь.
Отвечайте на вопросы: Лучший способ построить сообщество — помогать друг-другу. Отвечать на вопросы, особенно новичков, это важный шаг в росте и процветание. Время затраченное на помощь «нубу», даже если его вопрос можно легко найти в документации (с ответом: «RTFM»), оплатится новым, активным участником. Каждый с чего-то начинал, а приток новых пользователей это жизненно важно для любого сообщества.
Пишете блогозаписи: Если у вас есть блог, поделитесь опытом. Расскажите о проблемах с которым вы столкнулись и как вы их решили. Этим вы сразу поможете в двух направлениях: продвижения проекта и помощь людям, которые столкнулись с такой же проблемой. Блог ваших технических похождений также очень неплохой способ показать опыт использования технологий и приложений и будет полезен при поиске новой работы.
Улучшите сайт проекта: Большинство программистов — дерьмовые дизайнеры и редкий проект которому не нужна помощь талантливого дизайнера. Помогите улучшить дизайн сайта, всё-таки это лицо проекта. Поверьте, затраченное время окупится с лихвой! Возможно проекту нужен капитально новый дизайн или логотип, а таких способностей может не хватать у сообщества. Я знаю это, потому-что сам хотел бы улучшить дизайн сайтов собственных проектов.
В конце-концов. Прежде всего, слушайте о чём люди говорят. Смотрите, возможно именно тут вы можете чем-то помочь. Например, недавно в рассылке проекта Parrot было решено использовать GitHub и их систему bug-трекера взамен старого Trac. Некоторые люди были против — не было способа перенести всю старую базу Trac на новую платформу. После целого дня споров, я влез и сказал: «А что если я напишу преобразователь?». Люди пришли в восторг от моей идеи! Я потратил время, чтобы написать программу для преобразования 450+ тикетов. Ведь в противном случае была б потеряна история. Это был успех! Я взялся за дело, а в это время основные разработчики оставались сосредоточены на развитии Parrot.
Существует так много способов внести свой вклад, особенно если мы посмотрим мимо очевидного — добавление нового функционала. Каждый, кто использует open source, может помочь своими талантами и способностями в развитии проекта и его сообщества.
FDroid — F-Droid сетевой репозиторий Open Source проектов, сам является открытым ПО, исходники сервер и клиент, и хвалебная ода на хабре.
AOpenSource — база данных Open Source проектов включает
Источник
Android app source files
Awesome Android Open-Source Projects
👓 A curated list of awesome android projects by open-source contributors.
Awesome Android Open-Source Projects aims to be the starting point for those who are new to the world of Open-Source and want to contribute for the same. It also serves experienced contributors to participate and contribute in the mentioned list of projects.
☘️ Categories
- Android TV is a version of the Android operating system. It is developed by Google for soundbars, set-top boxes, digital media players, and TVs with native applications.Movie Paradise is an Android TV app. Application is using The Movie Database.
- SmartYouTubeTV: A YouTube client for set-top boxes and Android-based TVs.
- This repository consists of multiple samples showing best practices in app development on Android TV.
- Vineyard is an unofficial Vine client for Android TV.
- This is a watch face for Android Wear based on the typeface used for the FORM design conference.
- Smart Alarm is a privacy-focused sleep tracker with powerful features and works without an internet or phone connection.
- Twelveish is a unique Wear OS (Android Wear) Watch Face that displays the approximate time in words (in multiple languages).
- Get notifications from your favourite subreddits right on your android wearable.
- Multiple samples showing best practices in app and watch face development on Wear OS.
- Unofficial Foursquare® Client for Android Wear.
- Android Application to track any user activity on Github built using the Github Developers Api. The tools used for implementations — Github Developers Api, Kotlin, Coroutines, MVVM, Glide, Retrofit.
- This repository contains a detailed sample app that implements MVP architecture using Dagger2, GreenDao, RxJava, FastAndroidNetworking, PlaceHolderView and AndroidDebugDatabase.
- This repository contains a detailed sample app that implements MVVM architecture using Dagger2, Room, RxJava, FastAndroidNetworking, PlaceHolderView and AndroidDebugDatabase.
- This repository showcases and compares different architectural patterns that can be used to build Android apps. The exact same sample app is built three times with different architectures.
- Android architecture sample with dynamic feature modularisation, clean architecture with MVI (Uni-directional data flow), dagger hilt, DFM Navigation, kotlin coroutines with StateFlow and Exo player.
- Kotlin MVP clean architecture for Android using Koin, Room and RxJava2
- Android example with Clean Architecture by layer.
- Foodium is a sample food blog Android application built to demonstrate use of Modern Android development tools — (Kotlin, Coroutines, Flow, Dagger 2, Architecture Components, MVVM, Room, Retrofit, Moshi, Material Components).
- App that interacts with a Rest Api. Architecture is MVVM.
- The official Android app for IRCCloud.com
- Jetchat is a sample chat app built with Jetpack Compose.
- An example project to demonstrate how to build WhatsApp using Jetpack Compose.
- K-9 Mail is an open-source email client for Android.
- Native Android port of the KDE Connect Qt app
- QKSMS is an open source replacement to the stock messaging app on Android. It is currently available on the Google Play Store and on F-Droid
- Minimal text messenger with a ton of features.
- Signal is a messaging app for simple private communication with friends.
- Telegram is a messaging app with a focus on speed and security. It’s superfast, simple and free. This repo contains the official source code for Telegram App for Android.
- Android instant messenger using Tinode backend. Beta-quality software. Debug APKs are available in releases.
- Tutanota is an email client with a strong focus on security and privacy that lets you encrypt emails on all your devices.
- The project in this repository contains the Wire for Android client project.
- An Android app that lets you download free children’s books in different languages from non-profit publisher Book Dash
- Comic reader app. Learning MVVM / MVI with RxKotlin, Retrofit, Kotlin Coroutine, Work Manager, Room, Firebase, AndroidX, Clean Architecture.
- A cool, modern client app for the anime tracking website Hummingbird.me
- Free and open source manga reader for Android
- This is the official repository of AntennaPod, the easy-to-use, flexible and open-source podcast manager for Android.
- Jetcaster is a sample podcast app, built with Jetpack Compose. The goal of the sample is to showcase dynamic theming and full featured architecture.
- Movie discovery app showcasing MVP, RxJava, Dagger 2 and Clean Architecture
- Movie Android App written in Kotlin, MVVM, RxJava, Android Architecture Components.
- A libre lightweight streaming front-end for Android.
- A material designed music player for Android
- Shuttle is an open source, local music player for Android.
- A light-weight and minimalist music player for Android
- Material Design Music Player
- A minimalistic movie listing app to browse IMDB’s top 250 movies, built to demonstrate MVVM with latest hot-trending Android development tools.
- TvFlix android app using Dagger Hilt, Coroutines, Jetpack(Room, ViewModel, Paging, LiveData) based on MVVM architecture purely written in Kotlin.
- Bitcoin Wallet app for your Android device. Standalone Bitcoin node, no centralized backend required.
- CoCoin, Multi-view Accounting Application
- App written in Kotlin for budget tracking.
- Finance Manager is an Android Application which contains Income Tax Calculator and EMI Calculator.
- GnuCash Android is a companion expense-tracker application for GnuCash (desktop) designed for Android. It allows you to record transactions on-the-go and later import the data into GnuCash for the desktop.
- Kripto is cryptocurrency and exchanges app for Android, written in Kotlin and made using Coingecko’s API.
- Currency Exchange App displays real-time currency rates, shows a chart for any currency pair.
- This is the Android port of the 2048 game made by Gabriele Cirulli.
- Traditional roguelike game with pixel-art graphics and simple interface
- Google Santa Tracker app for Android is an educational and entertaining tradition that brings joy to millions of children (and children at heart) across the world over the December holiday period.
- Cuboidal Drift is a casual, fun android game with cool looking graphics, made by Virej Dasani.
🏋️ Health & Fitness
- Android based heart rate monitor which uses the camera and its flash to determine the users heart rate in beats per minute.
- Lightweight pedometer app for Android using the hardware step sensor
- Track your sport activities with RunnerUp using the GPS in your Android phone.
- Accompanist is a group of libraries that contains some utilities which I’ve found myself copying around projects which use Jetpack Compose.
- An easy-to-use Android charts library with animation.
- A library for debugging android databases and shared preferences — Make Debugging Great Again
- Bind Android views and callbacks to fields and methods.
- A fast dependency injector for Android and Java.
- Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.
- ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet. ExoPlayer supports features not currently supported by Android’s MediaPlayer API, including DASH and SmoothStreaming adaptive playbacks.
- Android filter library -This library has 16 filters which can be applied to image bitmaps.
- An image loading and caching library for Android focused on smooth scrolling
- A Java serialization/deserialization library to convert Java Objects into JSON and back
- This repository is the home of the next generation of JUnit, JUnit 5.
- Simple, pretty and powerful logger for android
- Render After Effects animations natively on Android and iOS, Web, and React Native
- A Beautiful Multipurpose Motion Toast Library in Android using Kotlin heart_eyes
- A powerful Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.
- Square’s meticulous HTTP client for Java and Kotlin.
- A powerful image downloading and caching library for Android
- A SeekBar suited for showing a preview of something. As seen in Google Play Movies.
- A type-safe HTTP client for Android and the JVM
- RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
- The usual Toast, but with steroids
- An beautiful Zoom Animation Library for RecyclerView Items in Android using Kotlin.
- ZXing («Zebra Crossing») barcode scanning library for Java, Android
- Android Library to make it easy to add ReactButton feature in your app with Multi Reactions.
- Android Library to create Lottie animation view dialog easily with a lot of customization.
- Android TensorFlow MachineLearning Example (Building TensorFlow for Android)
- The official Wikipedia app for Android!
- Playground project for the Jetpack Compose APIs
- Pokedex on Jetpack Compose
- An app to stay up to date with the latest stats of the coronavirus , using Kotlin with MVVM ,Coroutines , Android Architecture Components and Dagger
- CrashReporter is a handy tool to capture app crashes and save them in a file.
- The Google I/O 2019 Android App
- Jetsurvey is a sample survey app, built with Jetpack Compose. The goal of the sample is to showcase text input, validation and state capabilities of Compose.
- Crowdfunding app concept for Android. Created to showcase new trends in Android development with strong focus on Material Design.
- LeafPic is a fluid, material-designed alternative gallery, it also is ad-free and open source under GPLv3 license. It doesn’t miss any of the main features of a stock gallery, and we also have plans to add more useful features.
- MoonShot is a SpaceX companion app to help you keep up with their launches. It uses the SpaceX API to fetch data.
- Native version of Open Food Facts on Android — Coders & Decoders welcome
- An Android app which provides design news & inspiration as well as being an example of implementing material design.
- Android Pokedex using Dagger Hilt, Motion, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData) based on MVVM architecture.
- Ride-Sharing Uber Lyft Android App — Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft — Open-Source Project By MindOrks
- An Android app which shows timeline of upcoming rocket launches and showcases architecture of real application.
- Hacker News reader for Android, written in Compose
- Flym News Reader is a light Android feed reader (RSS/Atom)
- Jetnews is a sample news reading app, built with Jetpack Compose. The goal of the sample is to showcase the current UI capabilities of Compose.
- A material-design Hacker News Android reader
- A localized News reader Android app powered by newsapi.org
- Android News Application built in kotlin: MVI+Dagger+NetworkBoundResource+ViewModel+Livedata.
- News App built with Jetpack Compose
- Android client for the Nextcloud news/feed reader app.
- A Simple Demonstration of the New York Times App using Jsoup web crawler with MVVM Architecture
- ☑️ Student Utility Mobile App. Features: Mark Attendance, View Time Table, Create Tasks.
- Material design file manager for Android
- Another Android Explorer ( File Manager ) is an All-in-One Open source file manager. AnExplorer File Manager (File Explorer) is designed for all android devices including Phones, Phablets, Tablets, Chromecast, Wear OS, Android TV and Chromebooks. It’s a fully designed with Material guidelines by Google.
- Clean Architecture by layer
- Jetpack compose shopping list app
- Joplin — an open source note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS.
- A jetpack compose clone of Android 10 Calculator UI
- A modern, easy and customizable app manager for Android with Material Design
- Open source note-taking application for Android
- The ownCloud Android App
- Simple yet powerful rich note taking android application, with a lot of flexibilty of usage.
- Open source link manager with folders and widget feature and sort links depend on usage.
- Use the sensors in your mobile devices to perform science experiments.
- Android screen filter app for night time phone use.
- A simple sound recording app implementing Material Design
- Simple and powerful File Editor for Android. All is licensed under the GPLv3 license.
- Wally is a fast and efficient wallpaper application for Android
- CycleStreets is a UK-wide cycle journey planner system, which lets you plan routes from A to B to C by bike. It is designed by cyclists, for cyclists, and caters to the needs of both confident and less confident cyclists.
- The public transport companion that respects your privacy and your freedom. Transportr is a non-profit app developed by people around the world to make using public transport as easy as possible wherever you are.
- Travel Mate is an android app for travellers. It provides features like choosing the correct destination, making bookings, and organizing the trip. It provides solutions for every problem a traveller might face during their journey. It provides a comprehensive list of information about a destination: current weather, best places to hangout, and city’s current trends.
- Monitors and records the CPU and memory usage of Android devices
- AuthPass — Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3.x) compatible.
- A library to include ‘EarthView with Google’ into your application with ease.
- An app to convert images to PDF file!
- Memento Calendar is a modern namedays app for Android. This repository contains the source code of Memento Calendar.
- Stitch your photos together vertically or horizontally easily!
- A simple calendar with events, customizable widgets and no ads.
- Minimal, simple and beautiful alarm clock thoughtfully designed by nap enthusiasts.
- Android client for Travis CI
- Share Wi-Fi passwords with QR codes or NFC tags
- Weather App that uses Android best practices. Android Jetpack, clean architecture. Written in Kotlin
- Open source weather app for Andorid
- Minimal weather app for Android
- Simple Weather app for Android following MVVM architecture, and Jetpack Component like Room etc.
- Weather app to get current weather info of any city around the globe using OpenWeatherMap API.
- Weather Forecast App implemented in MVP Architecture using Kotlin that enable users to have instant access to weather data.
🎯 HacktoberFest
Hacktoberfest is a month-long celebration of open source software organized by DigitalOcean in partnership with GitHub and Dev. Hacktoberfest is open to everyone in our global community. Whether you’re new to development, a student, long-time contributor, event host, or company of any size, you can help drive growth of open source and make positive contributions to an ever-growing community. All backgrounds and skills levels are encouraged to complete the challenge.
To qualify for the official Hacktoberfest swag options, you must register and make four pull requests between October 1-31. Pull requests can be made to any public repository on GitHub, not just the ones with issues labeled Hacktoberfest. If a maintainer reports your pull request as spam or behavior not in line with Hacktoberfest’s quality standards, you will be ineligible to participate.
You can also check the swag-list and other companies giving away swags for HacktoberFest.
Источник