Android app programming detail structure

How do we write and build Android applications and what goes into them?

Start with installing Android studio and a brief overview of project and android structures, the separation of Java and XML, and the location of the app level build.gradle file.

Java – executed progrommatically at runtime. This is where we do the bulk of our programming, handling most of our app’s logic, interacting with the Android system, our stored data, make network calls, etc.

XML – layouts are parsed at compile time, save for things like relative positioning which are dependent on device type and can only be known only at runtime. XML should be kept as free of logic as possible. That being said, there are some attributes, like the onClick attribute, that blur these lines a bit, and some very powerful attributes for UI/UX that save us a lot of time as programmers, like collapsing toolbars with parallax, or handling View animations and transitions.

Gradle:
Gradle is the build system used to assemble the various pieces of our application and bundle (package) them into an apk (application package), which is analogous to an executable. The Android system runs .apk files. Gradle uses a scripting language called Groovy. You can dive really deeply into Android development without needing to become a Gradle expert or formally learn Groovy, so do not be afraid of this (initially) scary black box. It’s okay if the whole Gradle build process feels overwhelming and nerve-racking at first. In time you will gain confidence. Trust me.

Gradle tips to serve up right away, maybe even before Hello World, to help solve those terrifying seemingly arcane issues that can stop your app from building and running:
1. When you first create your new application, build and run it. Once you have a deployed a working build, you know your build.gradle files are properly configured. Now you have a safe base to work from and return to if you encounter problems and you absolutely cannot find a solution!
2. Changes will mostly be made to the app level build.gradle file, rarely to the project level. (The project level build.gradle is located in the root project folder, app level in the app folder). Changes you make will usually be for the inclusion of new libraries. Think of libraries as collections of methods that can be tailored to our needs, like making network calls or caching images, thereby reducing the need to for us to create everything from scratch. When you first start, the only thing you will really need to worry about is making sure that the app you are working with is compatible with your Android SDK Platforms and Tools. If you created the project yourself, chances are good that everything will work properly from the outset. If you’ve imported someone else’s project, then you’ll want to either install the version of the SDK they were working with (File->Settings->System Settings->Android SDK) or update the project’s build.gradle compileSdkVersion and buildToolsVersion to match the version of the Android SDK Platforms and Tools you have installed. You’ll need to change a few other things as well… targetSdkVersion should match compileSdkVersion and all library dependences in the dependencies{} block should begin with the same SDK version, for instance, if your compileSdkVersion is 25 and you’re using the appcompat support library, you’ll want to see something like, ‘com.android.support:appcompat-v7:25.3.1’
We’ll cover library dependencies later, but for now, just take a deep breathe and be confident that although Gradle may feel a bit mystical and magical at the moment, it won’t be long before you become comfortable making changes and adding useful libraries to your project.
3. Sometimes you need to Clean and Rebuild the project (Build->Clean, Build->Rebuild) before you redeploy to an emulator or your device. It’s often a good idea to pair this rebuild with an uninstall of the existing version of your application on your device before you redeploy.
4. If you’ve tried the steps above and you’re still having issues, copy and paste the non application package specific portions of a Gradle build error into a Google search and the first result will almost always be a helpful, detailed solution on Stack Overflow.

App resources: These are things like image, sound, and video files that your app may contain. These are often found in the res folder.

App Fundamentals:

The four components of an app provided by the Android framework. These are four separate access points into the app and each one is an equally valid starting point allowing for specific interactions.

Activities – our most common access point for a user’s interaction with our app. They are tightly coupled to the View (the layout and the XML), and will be full of Android specific code to gather and relay or process user input. A natural Controller for the MVC pattern.

Services – allow us to keep our apps running in the background to take care of longrunning operations after the user has exited our app (and even after all associated activies have been destroyed). IntentServices are a special subclass of Service that runs on a background thread rather than the application’s main thread, which means the user can still use your app when the IntentService is doing work. For regularly scheduled services like syncing with a cloud database targeting API 21+, using JobScheduler (or Firebase JobDispatcher) is recommended.

Broadcast Receivers – allow us to listen for, receive, and send systemwide messages, if necessary, even when our app is not running. Through broadcasts, we can interact with the system and with other applications.

Content Providers – provide us with an additional layer of abstraction between our app data stored in the file system, SQLite databases, in the cloud, or in any other persistent storage location. Content Providers also allow us to provide an access point to our data to other applications if we so desire, even allowing full read/write privileges. Content URIs (paths pointing to the data storage location) can be assigned even when our app isn’t running. Certain components of our app do need to be running in order to retrieve information from storage when a retrieval request is made by another authorized app, but the requesting app is able start the process for our app if it isn’t already running.

So how are these four components activated?
Intents. Either implicit (asks the system, “Is there an app that can handle this type of component?”) or explicit (tells the system, “Use this specific component of this specific application.”)

What is an Android Manifest?
The Android system can only start app components that are declared in our app’s manifest file, AndroidManifest.xml
Components are declared between the tags, and have intuitive tags:
Within these component tags, we specify their capabilities.
Outside of the tag, we declare our app’s permissions, features, and requirements. For instance, the is a very common inclusion if your app will be receiving or sending any information over the internet.

The Android Platform Architecture:
Great outline available at https://developer.android.com/guide/platform/index.html
Five layers in descending order:

5. App Layer. This is where our app runs. It is also where we find the System Apps which our app might commonly use an Intent to harness. Third party apps can become defaults if the user chooses, like when a user chooses to use Gmail rather than the default Email app.

4. Java API Framework. This is where the classes for the View system (UI) are housed, as well as Content Providers and various Managers for Activity, Location, Notification, etc. We instantiate these classes to get access to their methods. The View system, for instance, provides us with Views (and all of the special types of Views like TextViews that subclass the View class.

3. Android Runtime, as well as the Native C/C++ libraries.
Houses the ART (Android Runtime) and its core Java libraries, as well as Native C or C++ libraries like Webkit for browsers, Open GL ES for graphics, etc. We can access these Native libraries directly through the Android NDK, or sometimes through Java APIs provided by the Android framework. Sometimes third party engines, frameworks, or libraries function similarly, translating our managed Java code and calling the appropriate methods in the Native C/C++ libraries.

2. Hardware Abstraction Layer (HAL)
Audio, Camera, Sensors, etc. We go through the Java API Framework to get access to hardware functionality. The Android system takes care of loading the library modules for the specific hardware components.

1. Linux Kernel
Foundation of the Android platform, handles such things as concurrency, threading, low-level memory management, and hardware drivers.

The Activity Lifecycle:
https://developer.android.com/guide/components/activities/activity-lifecycle.html
Activity lauched-> onCreate() -> onStart() -> onResume() -> Activity runs in foreground until another activity is brought to foreground -> onPause() (if user returns to the activity from onPause, onResume is called) -> (activity is no longer visible) onStop() (if user navigates back to the activity, onRestart() is called, followed by onStart() and then onResume()) -> (activity is finishing or being destroyed by the system) onDestroy() -> Activity is shut down

We use Intents to move between activities, packaging extra information with the intent using the various putExtra() methods.

Some important pieces of the Android Framework:

Fragments:
These can add a lot of complexity to an application, so be sure before you begin using fragments that you actually require their functionality and you’ve weighed the costs of implementation. The goal is to make layouts more flexible and responsive across all devices. An activity might have two FrameLayouts, for instance, each capable of housing a fragment. Each fragment has its own XML layout file that gets inflated when the fragment is visible. On a phone, you might have one fragment visible at a time, hiding it in order to display the other, whereas on a tablet, you have the screen real estate to display both. Complications arise from the fact that fragments have their own lifecycles, tied to the launching activity’s lifecycle, but two fragments displayed on the same screen need not share the same launching activity. There is also the business of communicating between fragments, their activities, other fragments, and other activities. If you don’t have a solid understanding of how to build and implement an interface, using fragments may lead to a lot of frustration initially, but will ultimately teach you a lot, even if you don’t end up using them in all or even most of your Android projects and applications.

Loaders:
Using Loaders allows us to easily, efficiently, and asynchronously load data from a database (through our Content Provider!) or another data source into our the Views controlled by our Activity or Fragment. Loaders keep the UI thread of stuttering or locking up when we have a lot of data to retrieve and display. They also persist and cache the information they retrieve during rotation changes, reducing calls to our data source and they provide convenient callbacks through LoaderManager.LoaderCallbacks to notify our activity or fragment when our data is ready for use/display.

Content Provider / SQLite Database classes:
YourContract
YourDbHelper extends SQLiteOpenHelper
YourProvider extends ContentProvider

YourContract + YourDbHelper define the table and column names and create the SQLite Database
YourProvider provides access to the database’s Query, Insert, Update, and Delete methods

Schematic is a third party library that simplifies the creation of ContentProviders and SQLite Databases, reducing the need to write as much boilerplate code.

Awesome Libraries:
Networking: Volley / Retrofit
Image Loading and Caching: Glide / Picasso

Widgets:
AppWidgetProviderInfo – XML file, describes layout, update frequency, and AppWidgetProvider class name
YourAppWidgetProvider – Java class, extends AppWidgetProvider, allows your app to receive broadcasts from the system when its associated widget is created, updated, enabled, disabled, or deleted.

App Resources:
anim: tween animation (a series on transformations on a single image with an Animation)
drawable: bitmap (png or jpeg), nine patch (png), vector (svg), shape, layers, states, levels, scale, frame animation (sequence of images in order with an AnimationDrawable)
layout: xml layout files
menu: xml menu files
mipmap: launcher icon (usually png) – Specified in the manifest.
values: strings.xml, integers.xml, bools.xml, dimens.xml, arrays.xml, styles.xml, colors.xml..
xml: additional xml files (AppWidgetProviderInfo, Preference with tag)

Android-specific Java:
What is Context and why do I have to pass it around to everything?
Context is the current state of the application. It’s used to create new objects that need to know something about the application’s state, such as views, adapters, and listeners. The context is also needed to access common Android framework resources and to access components implicitly (without explicit instantiation).
You can get the context with getApplicationContext(), getContext(), getBaseContext(), or using the keyword ‘this’ when inside a class that extends from Context, which includes the Application, Acitivity, Service, and IntentService classes.
Other forms of Context:
You can call getActivity() or cast a context to an Activity if you specifically need an Activity object.
You can call getApplication() from an Activity or Service.

 

Ref: https://github.com/bonoj/Toybox/blob/master/Teaching%20Android

 

Family Tambola

ft_192

Tambola / Housie

This app contain two parts Organizer & Participant.

Organizer will organize the game. Participant will play the game.

While Organizing the game, The new number(s) will speak out for user friendly.

While Participating the game, You will get you know If any row completed or complete house completed.

,

Slam Book Android App

slam_book_logo_large

Slam Book android app

– You can get slams from your dear ones with static / dynamic.

– You can search all your slams with the name or phone number.

– Slam book app will remind you, all your friend’s birthday dates.

– Slam book app will help you with quick contact ( direct call / message / mail ) with your friends.

– Invite your friends with unique url where ever ur friends in the world, to fill the slam.

– With the invitation link the people can fill the slam in mobile / desktop.

– You can fill your friends slam request just in few sec with your unique key.

– Know more about your friends. 🙂

Play Store:  https://play.google.com/store/apps/details?id=a.sample.slambook

This slideshow requires JavaScript.

Open source Android apps

 

A list of interesting and open source Android apps.


F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your device.

Privacy is possible, Signal makes it easy. Using Signal, you can communicate instantly while avoiding SMS fees, create groups so that you can chat in real time with all your friends at once, and share media or attachments all with complete privacy. The server never has access to any of your communication and never stores any of your data.

Github | Google Play

Silence (formerly SMSSecure) is an SMS/MMS application that allows you to protect your privacy while communicating with friends. Using Silence, you can send SMS messages and share media or attachments with complete privacy.

Github | Google Play | F-Droid

ChatSecure is a free and open source messaging app that features OTR encryption over XMPP. You can connect to your existing accounts on Facebook or Google, create new accounts on public XMPP servers (including via Tor), or even connect to your own server for extra security. Unlike other apps that keep you stuck in their walled garden, ChatSecure is fully interoperable with other clients that support OTR and XMPP, such as Adium, Jitsi, and more.

Github | Google Play

K-9 Mail is an open-source e-mail client with search, IMAP push email, multi-folder sync, flagging, filing, signatures, bcc-self,PGP, mail on SD & more! K-9 supports IMAP, POP3 and Exchange 2003/2007 (with WebDAV).

Github | Google Play | F-Droid

Lightning is a simple, fast web browser that focuses on design, security, and efficiency. It uses material design, doesn’t track you, give you lots of options to protect your privacy, and does it in under 2MB. It gets out of the way of the user.

Github | Google Play | F-Droid

NewPipe is a lightweight YouTube front-end for Android. It doesn’t need the YouTube-API or any Google Play Services, as NewPipe only parses the YouTube website in order to gain the information it needs.

Github | F-Droid

AdAway is an ad blocker that uses the hosts file. The hosts file contains a list of mappings between hostnames and IP addresses. When an app requests an ad, that request is directed to 127.0.0.1 which does nothing. There are options to run a web server to respond to blocked hostnames and to direct requests to the IP address of your choosing. You can download hosts files from the app but it is possible to use your own and to add certain sites to the white- and black-lists.

Github | F-Droid

Writely is a minimalist Markdown editor for Android. Simply and elegantly compose notes in markdown or plain text. Organize by folders, save and access files from external storage, and restrict access with a PIN lock.

Github | Google Play | F-Droid

Telegram is a messaging app with a focus on speed and security. It’s super-fast, simple, secure and free. Telegram seamlessly syncs across all of your devices and can be used on desktops, tablets and phones alike. You can send an unlimited amount of messages, photos, videos and files of any type (.doc, .zip, .pdf, etc.). Telegram groups have up to 5000 people and you can create channels to broadcast messages to an unlimited number of subscribers.

“It’s worth a mention that Telegram’s server side is not open-source. However, that doesn’t really matter for security purposes, because the end-to-end encryption between client-side end users is tested and works flawlessly in Telegram regardless of the software on the server.” — enigmatoid

Github | Google Play

Conversation is a free and open source Jabber/XMPP client for Android 4.0+ smartphones that has been optimized to provide a unique mobile experience. Easy to use, reliable, battery friendly. With built-in support for images, group chats and e2e encryption.

Github | Google Play

OsmAnd (OSM Automated Navigation Directions) is a map and navigation application with access to the free, worldwide, and high-quality OpenStreetMap (OSM) data. All map data can be stored on your device’s memory card for offline use. Via your device’s GPS, OsmAnd offers routing, with optical and voice guidance, for car, bike, and pedestrian. All the main functionalities work both online and offline (no internet needed).

Github | Google Play

Mirakel is an easy to use and lightweight To-Do App for your Android Phone or Tablet. Become the most efficient & effective Dev with this task list for the greatest developers in the universe. Get your things done with a strictly organised workflow.

Github | Google Play | F-Droid

Android firewall AFWall+ is an advanced iptables editor (GUI) for Android. It provides fine-grained control over which Android apps are allowed to access the network. The original codebase was derived from DroidWall by Rodrigo Rosauro. DroidWall was sold to AVAST in December 2011, and is no longer actively maintained.

Github | Google Play

Amaze File Manager is a light and smooth file manager following the Material Design guidelines.

Features:

Basic features like cut, copy, delete, compress, extract etc. easily accessible Work on multiple tabs at same time Multiple themes with cool icons Navigation drawer for quick navigation App Manager to open, backup, or directly uninstall any app Quickly access history, access bookmarks or search for any file Root explorer for advanced users

Github | Google Play | F-Droid

Etar Calendar is a material designed calendar based on the ASOP calendar.

Github | Google Play | F-Droid

Slide for Reddit is a rock-solid material-designed unofficial browser for Reddit with an easy to use UI and tons of customization. Slide is ad-free, open source, and is packed with many unique features.

Github | Google Play | F-Droid

RedReader is an unofficial client for the news site reddit.com.

Github | Google Play | F-Droid

Aperture Gallery is an open source material design gallery. No distractions from your photos, and no heavy weight from loading. Personalize it to your liking by changing colours and by going into dark mode. Based on an old build of Impression by Aidan Follestad, Daniel Chao, and Marlon Jones.

“Due to an expired keystore Keystore, Aperture Gallery is being replaced by a new version, and this will now be known as Aperture Classic. I will focus on developing this new version of Aperture, and will add in more features and additions as my time permits. Aperture Gallery (Known as Project: EVO to beta and debug testers) will be released on the Google Play store in the coming months.”

Github

Master Password is not another password manager. This app will replace all your passwords with new strong passwords generated from your new master password; passwords are stored nowhere and need no sync, cloud or backups. This app will securely generate strong and unique passwords for any purpose, in a way that nobody can log or trace. Better yet, even if you somehow lose everything, you can effortlessly recreate all your passwords.

Github

Open Camera is a fully featured and completely free Camera app for Android phones and tablets.

SourceForge | Google Play | F-Droid

Antox is an Android 4+ client for Tox created by Mark Winter. It aims to bring the full multimedia support Tox offers to your device, although it’s still currently in heavy development. Antox is currently available for alpha testing on Google Play and F-Droid.

Github | Google Play | F-Droid repo

ProtonMail is the world’s largest encrypted email service with over 1 million users. The ProtonMail secure email app for Android brings easy-to-use email encryption to your mobile device by seamlessly integrating PGP end-to-end encryption. ProtonMail also provides a modern user interface with a full set of innovative features such as customizable swipe gestures and the ability to send expiring emails.

Since we were founded by CERN scientists in 2013, we have been joined by citizens from around the globe who have supported our mission to protect online privacy. Our mobile app was made possible by a record-breaking $550,000 donation campaign. With the ProtonMail app, you can now create your own free ProtonMail email account and start experiencing the secure email of the future.

Github | Google Play

Orbot is a free proxy app that empowers other apps to use the internet more securely. Orbot uses Tor to encrypt your Internet traffic and then hides it by bouncing through a series of computers around the world. Tor is free software and an open network that helps you defend against a form of network surveillance that threatens personal freedom and privacy, confidential business activities and relationships, and state security known as traffic analysis. Orbot creates a truly private mobile internet connection.

Github | Google Play | F-Droid

Orfox is a new privacy-enhanced browser for Android, based on Mozilla Firefox, configured by default to work with Orbot: Tor for Android.

Orfox is built from the same source code as Tor Browser (which is built upon Firefox), but with a few minor modifications to the privacy enhancing features to make them compatible with Firefox for Android and the Android operating system. Orfox requires Orbot app for Android to connect to the Tor network.

In as many ways as possible, we adhere to the design goals of Tor Browser, by supporting as much of their actual code as possible, and extending their work into the additional Android components of Firefox for Android.

Github | Google Play

Brave has joined forces with LinkBubble to bring you a faster web – by blocking the ads and trackers that get in your way plus all the features you love from LinkBubble. Just go to the settings to turn on or off privacy features like ad blocking, tracker protection and Https Everywhere.

Recognized in Google Play’s Best Apps of 2014, Brave (formerly known as LinkBubble) has unique features to make internet browsing faster and more seamless. When you click on a link in an app, Brave loads that webpage in the background, leaving you free to keep using your current app – rather than wasting your time watching pages load.

Brave is designed for both speed and security, so you can enjoy a lightning fast browsing experience without popups, malware and other annoyances. All Brave browsers are open source, so you can view our code and even make contributions.

Github | Google Play

Ghost Commander is a file manager with two panels for the Android™ platform. Its development was inspired by the famous (Norton|Midnight|Total) Commander desktop applications, so if you are familiar with those great programs, you will find Ghost Commander a familiar and very convenient environment.

As was said above, it has two separate panels, both of them able to show files from different locations. What does that give you? For example, when you need to copy files from one folder to another, you just select the files in one panel and the target in the other, then hit the ‘5’ key (either on the physical keyboard or on the toolbar). That’s it. No need to do such boring steps as copying the files to the clipboard, navigating to the place you want them to be copied to, pasting and then going back.

All the main file operations in this application are bound to numerical keys, with the same numbers as in the well-known prototype applications (e.g.: “F5 copy” is just ‘5’, “F6 move” is ‘6’). If your device is not enriched with a physical keyboard, no problem, Ghost Commander features a customizable toolbar which has all the often-used commands collected in one place.

SourceForge | Google Play | F-Droid

Twidere is a powerful Twitter/StatusNet/Fanfou app for Android 4.0+, which gives you a full Material experience and nearly complete (or even better) Twitter feature.

Github | Google Play

Omni-Notes is a note taking open-source application aimed to have both a simple interface but keeping smart behavior.

The project was created by the absence of such applications compatible with old phones and old versions of Android that would propose, however, an attractive look and aligned with the most recent design of the Google operating system.

Github | Google Play

Hack.chat is a minimal, distraction-free chat application. Create a chatroom with just a name, there are no preset channel so just enter a chatroom name and a nickname, share the link and communicate.

Github | Google Play | Google Play

Terminal Emulator for Android is a terminal emulator for communicating with the built-in Android shell. It emulates a reasonably large subset of Digital Equipment Corporation VT-100 terminal codes, so that programs like “vi”, “Emacs” and “NetHack” will display properly.

Github | Google Play

Simplenote is an easy way to keep notes, lists, ideas, and more. Keep notes on the web, your mobile device, and your computer. Find notes quickly with instant searching and simple tags. Share a list, post some instructions, or publish your thoughts.

Github | Google Play

AntennaPod is a podcast manager and player that gives you instant access to millions of free and paid podcasts, from independent podcasters to large publishing houses such as the BBC, NPR and CNN. Add, import and export their feeds hassle-free using the iTunes podcast database, gPodder, OPML files or simple RSS URLs. Save effort, battery power and mobile data usage with powerful automation controls for downloading episodes (specify times, intervals and WiFi networks) and deleting episodes (based your favourites and delay settings). But most importantly: Download, stream or queue episodes and enjoy them the way you like with adjustable playback speeds, chapter support and a sleep timer.

Github | Google Play | F-Droid

Financius – Expense Manager is a simple application that helps you log and track your expenses and keep an eye on your balance.

Github | Google Play

Google I/O is a developer conference held each year with two days of deep technical content featuring technical sessions and hundreds of demonstrations from developers showcasing their technologies.

This project is the Android app for the conference. The app supports devices running Android 4.0+, and is optimized for phones and tablets of all shapes and sizes.

GitHub | Google Play

Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it’s transmitted over the Internet.

Github | Google Play | F-Droid

DAVdroid is the only all-in-one synchronization solution for your contacts (CardDAV), calendars (CalDAV) and your tasks (based on VTODO). The app is easy to set up and integrates perfectly with your favorite calendar/contacts app (including default apps). It can also be used seperately, if you either have CalDAV, CardDAV or only Tasks.

GitLab | Google Play | F-Droid

Tasks is free and open source task management software based on the same code as Astrid.

Github | Google Play | F-Droid

Transportr is 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. Currently, it works best in Europe, but also supports many places world-wide. If you live in an unsupported area, consider adding it to Transportr. It finds directions from your home, your current position or a given station to wherever you want to go. You can also save entire trips as favorites and find next trips with one click. Discover nearby stations and show upcoming departures including the delays (if there are any).

Github | Google Play | F-Droid

KDE Connect is a project that aims to communicate all your devices. For example, with KDE Connect you can receive your phone notifications on your computer, or just use your phone as a remote control for your desktop. To achieve this, KDE Connect implements a secure communication protocol over the network, and allows any developer to create plugins on top of it. Currently there are KDE Connect clients on KDE, Android and Blackberry, and soon we will support iPhone as well.

Source | Google Play | F-Droid

Termux is a terminal emulator and Linux environment bringing powerful terminal access to Android.

Ready to go. Termux works directly with no rooting or setup required. At first start a minimal base system is installed automatically – you decide what to do next.

Secure. Access remote servers using the ssh client from OpenSSH. Termux combines powerful standard packages with accurate terminal emulation in a beautiful open source solution.

Feature packed. Take your pick between bash, fish or zsh and nano, emacs or vim. Grep through your SMS inbox. Access API endpoints with curl and use rsync to store backups of your contact list on a remote server.

Customizable. Install what you want through the Apt package management system known from Debian and Ubuntu GNU/Linux. Why not start with installing git and syncing your dotfiles?

Explorable. Have you ever sat on a bus and thought about exactly which arguments tar accepts? Packages available in Termux are the same as those on Mac and Linux – install man pages on your phone and read them in one session while experimenting with them in another.

With batteries included. Can you imagine a more powerful yet elegant pocket calculator than a readline-powered python console? Up-to-date versions of perl, python, ruby and node.js are all available.

Ready to scale up. Connect a bluetooth keyboard and hook up your device to an external display if you need to – Termux supports keyboard shortcuts and has full mouse support.

Tinkerable. Develop by compiling C files with clang or gcc and build your own projects with makefiles or cmake. Both gdb and strace are available if you get stuck and need to debug.

Github | Google Play | F-Droid

Tomahawk, the critically acclaimed multi-source music player, is now available on Android. Given the name of an artist, album or song Tomahawk will find the best available source and play it – whether that be from Spotify, Deezer, GMusic, Soundcloud, Tidal, Official.fm, Jamendo, Beets, Ampache, Subsonic or your phone’s local storage. Tomahawk for Android also syncs your history, your loved tracks, artists, albums and your playlists to/from the desktop version of Tomahawk via our new music community, Hatchet. On Hatchet you can hear your friends’ favorite tracks and see what they’re currently listening to.

Github | Google Play

Jitsi for Android is an Android port of the Jitsi project: The most feature-rich communicator with support for encrypted audio/video, chat and presence over SIP and XMPP.

Github | Download

WordPress for Android puts the power of publishing in your hands, making it easy to create and consume content. Write, edit, and publish posts to your site, check stats, and get inspired with great posts in the Reader. What’s more? It’s open source. WordPress for Android supports WordPress.com and self-hosted WordPress.org sites running WordPress 3.5 or higher.

Github | Google Play

 

Reference from : https://github.com/iampox/androidapps 

What Is the Best Platform For the First Launch – iOS or Android?

 

myazJOO0

Every single day you make dozens of choices. These choices may be even unnoticed, but they still determine your future. But when it comes to some business purposes, every choice is really key one. So, how to make the right decision? Undoubtedly, every time you should evaluate all the pros and cons.

 

Sooo, let’s find out which is better – Android or iOS!

 

Which-platform-is-better-for-the-first-launch-ios-or-android-infographic

 

Data taken by : https://www.cleveroad.com/blog/what-is-the-best-platform-for-the-first-launch—ios-or-android-infographic

 

 

Saying 👋 to Allo and Duo: new apps for smart messaging and video calling

 

Whether it’s welcoming a new baby, celebrating the winning shot in overtime, or discovering the best taco stand ever—we all want to share these moments with friends and family the instant they happen. Most of the time, this means picking up our phones and sending a message or starting a call. Today we’re sharing a preview of two new apps that take a fresh look at how people connect.

Allo, a smart messaging app
Allo is a smart messaging app that makes your conversations easier and more expressive. It’s based on your phone number, so you can get in touch with anyone in your phonebook. And with deeply integrated machine learning, Allo has smart features to keep your conversations flowing and help you get things done.

Emojis, stickers, Ink, and our Whisper Shout feature in Allo

Allo has Smart Reply built in (similar to Inbox), so you can respond to messages without typing a single word. Smart Reply learns over time and will show suggestions that are in your style. For example, it will learn whether you’re more of a “haha” vs. “lol” kind of person. The more you use Allo the more “you” the suggestions will become. Smart Reply also works with photos, providing intelligent suggestions related to the content of the photo. If your friend sends you a photo of tacos, for example, you may see Smart Reply suggestions like “yummy” or “I love tacos.”

Smart Reply suggestions in Allo

Allo also features the Google assistant, bringing the richness of Google directly into your chats—helping you find information, get things done, and have fun. You can chat one-on-one with the assistant, or call on Google in a group chat with friends. Either way, you no longer have to jump between apps to do things like book a dinner reservation with friends, get up-to-date sports scores, settle a bet, or play a game. The assistant in Allo lets you bring things like Search, Maps, YouTube and Translate to all your conversations, so that you and your friends can use Google together.

The Google assistant in Allo understands your world, so you can ask for things like your agenda for the day, details of your flight and hotel, or photos from your last trip. And since it understands natural language patterns, you can just chat like yourself and it’ll understand what you’re saying. For example, “Is my flight delayed?” will return information about your flight status.

Google assistant in Allo

Privacy and security are important in messaging, so following in the footsteps of Chrome, we created Incognito mode in Allo. Chats in Incognito mode will have end-to-end encryption and discreet notifications, and we’ll continue to add new features to this mode.

Duo, a video calling app for everyone
Duo is a simple, fast one-to-one video calling app for everyone—whether you’re on Android or iOS, a fast or slow connection, in New York or New Delhi. Like Allo, Duo is based on your phone number, allowing you to reach anyone in your phonebook. And its simple interface fades away when you’re in a call, so it’s just the two of you.

Video call in Duo

One of our favorite features of Duo is Knock Knock, which shows you a live video preview of the caller before you pick up. Knock Knock invites you into the moment, making calls feel spontaneous and fun. Once you answer, Duo seamlessly transitions you right into the call.

Duo calls are in crisp HD video (up to 720p) and audio. We’ve optimized Duo to work well even on spotty networks, so if bandwidth is limited it gracefully adjusts quality so you’re still able to connect. We also seamlessly transition calls between cellular and Wi-Fi, so you don’t need to worry about what network you’re on. Finally, we built Duo with privacy and security in mind and all calls on Duo are end-to-end encrypted.


Both Allo and Duo will be available this summer on Android and iOS. We can’t wait for you to try them.