Giter Site home page Giter Site logo

4u4life / pulse-sms-android Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jarvanh/pulse-sms-android

0.0 0.0 0.0 199.28 MB

The ultimate SMS app for Android, available across all of your devices

Home Page: https://messenger.klinkerapps.com/overview

License: Other

Java 22.58% Kotlin 77.42%

pulse-sms-android's Introduction

feature graphic

Pulse SMS

The goal of this project is to create an SMS/MMS app that has full support for all of the features that users love, is based on material design, and supports a strong end-to-end encryption version of a tablet/desktop messenger that sends messages through your personal phone number.

Check out Pulse on the Play Store or the app's website for a more comprehensive overview of the app's features, platforms, and functionality!

Many other Pulse platforms are also open source (all but the backend). If you would like to take a look at them, you can find them on Klinker Apps GitHub.

Compiling Pulse

This repo is almost ready to go, right out of the box. There are just two properties files that you need to create for the build process to succeed: api_keys.properties and keystore.properties. Both files can simply be copy and paste from the examples, if you choose.

Set up API keys

You'll need to set up a few different API keys. Rename the api_keys.properties.example file to api_keys.properties. This alone will get the build working and might be perfectly fine for your usage.

If you are using a self-built version of the app on a daily basis, then you might want to put in a few of your own API keys, rather than the public ones I have available. Please see the notes at the top of the file to learn more.

Set up release keystore

Whether you are going to make a release build of the app or not, you will need to copy the keystore.properties.example file to keystore.properties. If you aren't going to make a release build for anything, just leave it as is.

If you are going to make a release build, you will need to add your keystore to the repo and fill in fields outlined by that file.

Building the App

Once you have the above properties in place, Pulse has an entirely typical build. Run:

# generate APK files
$ ./gradlew assembleDebug
$ ./gradlew assembleRelease

# generate AAB files
$ ./gradlew bundleDebug
$ ./gradlew bundleRelease

Running the Tests

Pulse contains unit and database integration tests. To run all of them, run:

$ ./gradlew testDebugUnitTest

Pulse uses Robolectric for Android related tests. It does not contain UI-espresso tests.

Contributing to Pulse

Contributions are welcome!

  • If you just want to report a bug or file a feature request, I have a centralized issues repo for tracking issues/requests across all of Pulse's platforms. Please file the issue there.
  • Any other contributions can just go through the Pull Requests on this repo.

If you are looking to make a large change, it is probably best to discuss it with me first. Open up an issue, letting me know that this is something that you would like to make a PR for, and I can tell you what I think.

Open Source Experiments Settings Page

As a consumer app, allowing unlimited customization and endless settings pages is not Pulse's goal. While some may disagree, ultimately this does not add up to the best user experience. More settings means a much higher overhead for new users, as well as a more difficult time for existing users. I have done my best to enforce this vision by provide logical defaults, throughout the app. While Pulse is not light on customization, there is a balance between what could be considered "too much".

This vision is somewhat different in the eyes of an open source project, however. A major benefit of open source software is that you can customize it however you want. With that in mind, even if a feature you are suggesting is not something that I want to officially support in the app, that does not mean it can't and shouldn't be included! If you find use out of it, chances are someone else will, as well.

Within Pulse, I have made an "Open Source Experiments" settings page. There are disclaimers at the top that these preferences come as contributions from the community, without official support. This would be a great place to put any "tweak" options that you wish to include.

License

Copyright (C) 2020 Luke Klinker

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.

pulse-sms-android's People

Contributors

klinker24 avatar klinker41 avatar sstream17 avatar karakum avatar weregoingocean avatar asimonenkov avatar emredogan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.