Have you ever thought of making your own stuffs and use them?
Like your Own
- Operation System !
- Programming Language !
- Library !
- Framework !
- Apps !
- Games !
I'm that kind of person who was always interested in making applications which are integrated to the system (literally Applications) not business or commercial applications and still i am :3
I have always dreamt about things of my own...
So once I thought to make my own Android Launcher as I'm using Android Phones.
At first I thought it's something very hard and I won't be able to make a launcher.Then I found it supper easy!
Today i am going to discuss about how to nake your Android Launcher !
Let's start!
I am using Flutter which is a Cross Platform Framework of Dart Made by Google.
There is a big community of Flutter to make cross platform applications such as Android,IOS,Desktop and Web applications.
If you haven't installed flutter yet then have a look at their doc which is very user friendly and well decorated.
Note : I am using Visual Studio Code as a Editor or IDE and prefer terminal and command line activities.
Lets create a flutter application
- Command in terminal :
flutter create -i objc -a java custom_launcher
Note : This command will create a application named custom_launcher
and the native code for Android will be java
If you prefer Kotlin then just use -
flutter create custom_launcher
A flutter app will be created with similler file Structure:
We will code in main.dart
file.
First We will need to edit some codes in the AndroidManifest.xml
file. That will make our launcher different from normal Android Applications
Manifest file location :
- Add these lines in
AndroidManifest.xml
file under<intent-filter>
section :
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
Now If you run your app , it will appear as a Launcher.
Or Press Home button of your android phone and it will ask to set it as default launcher.
Congrats You have made your launcher :D
Yup Seriously ! It is that easy !
Now as a Flutter Application developer I hope you are able to do some of your own customizations.
I know you are concert about how can you show the installed applications in your custom Launcher.
Let's do it:
Interact with the Applications installed in Phone
To do so we will use a flutter plugin named device_apps
which will give us a List<application>
where all the necessary informations will be given.
- First import
device_apps
into your dart file :
import 'package:device_apps/device_apps.dart';
- Get the list of apps available in your phone :
List<Application> apps = await DeviceApps.getInstalledApplications();
- You can send some parameters too :
List<Application> apps = await DeviceApps.getInstalledApplications
(
includeAppIcons: true,
includeSystemApps: true,
onlyAppsWithLaunchIntent: true,
)
This will return something like that :
It provides :
App Name (String)
Apk File Path (String)
Package Name (String)
Version Name (String)
Version Code (int)
System App ? (bool)
Install Time (int)
Update Time (int)
Application Catagory (Catagory Type)
It also provides icon
as ApplicationIcon
.
To access icon you have to use that Application
type as ApplicationWithIcon
and check that the app has a icon first.
Note : icon is a Uint8 List type.
Now You have your data so do what ever you want !
Let me show you how you can use them
- Let's traverse all the apps we get before :
for (int i=0;i<apps.length;i++){
Application app = apps[i];
}
- Extract the application name :
Text(app.appName)
- Use Icon :
app is ApplicationWithIcon ? CircleAvatar(
backgroundImage:
MemoryImage(
app.icon,
),
)
Note : If you are not able to access app.icon then use this -
ApplicationWithIcon icon app as ApplicationWithIcon;
icon = icon.icon;
More things you will want to do :
- Check if an application is installed :
bool isInstalled = await DeviceApps.isAppInstalled('packageName');
- Open an Application :
DeviceApps.openApp('packageName');
Apps can be shown like this :
I have made an Android Launcher which is lightweight and Fast.You can have a look and If you like then give me a star :v
Source Code available : Ubuntu Launcher
Apk Release : Install
Happy Coding :D
Contact with | Follow me on : LinkedIn Twitter Facebook GitHub Quora Dev Medium
Latest comments (10)
Can we add widgets in this
I think you can, but have to google about it.
how to make a search engine to search for the application with that packages?
checkout the source code where i have implemented the search apps feature
github.com/jspw/Ubuntu-Launcher/bl...
Check latest version here Ubuntu Launcher 2.1.0
here is the latest release apk Ubuntu Launcher 2.0.1
Is this possible with Javascript using React Native?
I hope it's possible .
What extra you will need to do some native code to get the information about the apps installed in your mobile phone.
I don't know if there is any package available to show the app list in your mobile.
Nice work, my plan is to rebuild the windows 10 phone UI
great