Month: June 2018

Application lifecycle management is the process of managing an app’s development, from design to final release, and establishing a framework for managing changes.

The typical application lifecycle starts with the design of a new app or feature. The app is planned based on requirements analysis and specifications. After that, the app is implemented as per the specifications and then tested. The new app is staged for final testing before it gets deployed to production.

This cycle repeats for every new app or feature. It’s also used for app maintenance, such as when features are enhanced, or bugs are fixed.

To follow the above approach, we should follow AGILE methodology to get it done.  In this process, that start somewhere in the business as an idea, a need, a challenge or a risk and then pass through different development phases such as

  • Requirements definition
  • Design
  • Development
  • Testing
  • Deployment
  • Release and maintenance

In this process each of these steps is closely monitored and controlled, followed by proper tracking and documentation of any changes to the application.

Today, it is more likely that developers will use agile model and remain involved with the application after deployment, working with business owners and operations to make incremental changes as needed.

Some of our article related to app development process :

How To Develop Mobile Event App

Why firebase is the best as a Mobile Application backend?

Read More Application Lifecycle Management- How It is Useful in Mobile App Development for Business

Android iPhone Mobile Development Trends

Sometimes we forgot something about our event and missed something to do or forget something to schedule. We are so overloaded these days that we need something more than just a paper organizer. We need something that will help us to plan, follow and remind our life events. Mobile application developers have found a solution and they started creating Event planning or Event Handling applications. Event Handling app is one of the best way to handle or schedule the upcoming events. You can use this app from time to time control your event or to make your event to properly schedule. Basic steps to develop an Mobile Event App.

Know Your Competition and identify Your Need:
Any mobile application don’t have one basic model. They are divided into different types according to their need, purpose, target etc. Like that an event app also have any other competitor in the market. So firstly you need to look at it and need to develop your ideas. While developing your ideas to make sure that your idea should be unique which highlights your application.

Identify Approach To Develop App:
While developing an app you need to choice what type of application development technology should you choose. The choice for this is depend on your wish and budget of app.

  • Native Applications:
    Native apps is an application program that has been developed for use on a particular platform or device. They help you to develop custom set of functions and unique design. Because these apps are platform dependent you need to create separate versions foe each platform.
  • Hybrid Applications:
    This approach is latest approach to develop any mobile app. Hybrid app development combines the best part of both web development and native development. This approach overcomes the disadvantage of native apps of creating different application on different platforms. In Hybrid approach you can create app on one platform and deploy on multiple platforms.

Design Your App:
Design your application as per your need of app. Designing an app is becoming increasingly popular as it create an instant impact on the mind of user while ensuring usability of app

What Features need to be added in app?
While developing an app you need list down what features you need to add to your app. Those features which can highlight your app and make different froother app. When you are planning to develop an event mobile app let’s consider some basic features related to event planning should contain.
Basic features for Event planning App:

  • Scheduling:
  • Mapping:
  • Teaming:
  • Sharing:
  • Posting:

Scheduling:
Scheduling is necessary while developing an event app. Every event is scheduled on particular dates and times. By considering those dates and times you need to schedule your app so that user can easily got updates about that event.
Mapping:
Mapping feature makes user more comfort with the app. Geolocation will help to user to understand how to reach to venue in case user is unknown with the place and even mapping with any places related to the event helps user to get the location of that event within an event.
Teaming:
If your event app is for conference like events then making list of team members will help to user to know about the team, to know about whom going to conduct tht event and to know about profile information of team members.
Sharing:
This feature allows user to share their experience with outsiders.
Posting:
This feature allows user to post their experiences within the application. Posting is the quite good feature to involve user into the app.

What qualities does your app have contain?
In today’s growing app popularity, success of app depends upon the popularity of your app and how users will like it. It fully depends upon the qualities which you provide to your app and after that on user on their interactive experience. While developing the app you needs to add some extra and good qualities to the app which can make user engaged with app. Think more how you can increase interaction level in your app.

Summary
The main goal of event app development is to provide multipurpose app which help users to get all the information related to the event. It allow users to stick with app cause of qualities and features of the app for marketing purpose of app.

Read More How To Develop Mobile Event App

Mobile Development

Firebase for Mobile Application, By using Firebase we can be created quickly powerful and scalable application and the best thing is we do not worry about server end, everything is managed by firebase itself.we do not need to call API and managed databases so half of the work is done by firebase. It is fully managed platform to develop Ios Application, Android Application, and Web Application. It is fully filled with the feature. Firebase is different from Google Service Platform.  Since Google I/O 2016 there have been some major updates to Firebase. Below is information related to the legacy service.

Some Feature of Firebase :

1>Authentication: Firebase Authentication provides backend services for the mobile application.t supports authentication using passwords, phone numbers, social networking identity providers like Google, Facebook and Twitter, and more. we do not need server API firebase authentication provides security. For firebase Auth we need to add dependencies :

implementation 'com.google.firebase:firebase-auth:11.8.0'
For example we see login with mobile number and verify OTP with firebase:
FirebaseAuth auth ;
Firest initialize fiebase Auth in onCreate() method:
auth = FirebaseAuth.getInstance();

and then

String phone = mobile_editText.getText().toString();

private void sendVerificationCode(String phoneNumber, PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks) {
    PhoneAuthProvider.getInstance().verifyPhoneNumber(
            "+91" + phoneNumber,        // Phone number to verify
            60,                 // Timeout duration
            TimeUnit.SECONDS,   // Unit of timeout
            Signup_Activity.this,               // Activity (for callback binding)
            mCallbacks);        // OnVerificationStateChangedCallbacks
}

PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
    @Override
    public void onVerificationCompleted(PhoneAuthCredential credential) {

        Log.d(TAG, "onVerificationCompleted:" + credential);
        _credential = credential;
        if (_credential.getSmsCode() != null) {
            otp_editText.setText(_credential.getSmsCode());
            submitMethodCalled();
        } else {
            signInWithPhoneAuthCredential(credential);

        }
    }

    @Override
    public void onVerificationFailed(FirebaseException e) {

        Log.w(TAG, "onVerificationFailed", e);

        Singleton.hideLoader();
        if (e instanceof FirebaseAuthInvalidCredentialsException) {
            // Invalid request
            verification_text.setVisibility(View.VISIBLE);
            verification_text.setText(e.getLocalizedMessage());
            verification_text.setTextColor(getResources().getColor(R.color.green));

        } else if (e instanceof FirebaseTooManyRequestsException) {
            // The SMS quota for the project has been exceeded
            verification_text.setVisibility(View.VISIBLE);
            verification_text.setText("SMS quota for the project has been exceeded");
            verification_text.setTextColor(getResources().getColor(R.color.green));
        }


    }

    @Override
    public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
        super.onCodeSent(s, forceResendingToken);

        codesent = s;
        verification_text.setText("Verification code has been sent");
        otp_editText.setText("");
    }
};


private void submitMethodCalled() {

    if (_credential != null)
        signInWithPhoneAuthCredential(_credential);
    else {

        String code = otp_editText.getText().toString();
        // [START verify_with_code]
        _credential = PhoneAuthProvider.getCredential(codesent, code);
        // [END verify_with_code]

        signInWithPhoneAuthCredential(_credential);
    }
}

private void signInWithPhoneAuthCredential(PhoneAuthCredential credential) {
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                     Toast.makeText(getApplicationContext(), "your verification code is valid", Toast.LENGTH_LONG).show();
                     //do own codewhich you want to do on login success

 } else {
 if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
 
 Toast.makeText(getApplicationContext(), "your verification code is invalid", Toast.LENGTH_LONG).show();
 }
 }
 }
 });
}

2>Hosting: Firebase Hosting provides static content hosting.Firebase Hosting is production-grade App content hosting for developers.with using firebase hosting we can create quickly and easily develop the mobile application. Firebase hosting develope modern mobile application. Hosting gives your project a subdomain on the domainfirebaseapp.com. Firebase Hosting offers lightweight configuration options for you to build sophisticated Progressive Web Apps. You can easily rewrite URLs for client-side routing or set up custom headers.

3>Real Time Database: Real-time Database instance and automatically receive updates with the newest data. The Realtime Database provides a flexible, expression-based rules language, called Firebase Real-time Database Security Rules, to define how your data should be structured and when data can be read from or written to. When integrated with Firebase Authentication, developers can define who has access to what data, and how they can access it.

4>Cloud Messaging: Firebase cloud messaging from Google gives an ability to send and receive messages from the client, It is a cross-platform system and it is completely free and it has no limitations. Messages and notifications can be sent to the client app using the app server or the Firebase notifications console. To send push notification in mobile application use firebase cloud messaging.

To send Firebase Cloud Messaging in your app by two types:

i>Notification Message: In Notification messages type of messages are automatically displayed to end user.

ii>Data Message: In Notification messages type of messages is automatically displayed to end user.

To receive these messages in MyFirebaseMessagingService class file on:

@Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        if (remoteMessage.getData().size()>0) {

            String title = remoteMessage.getData().get("title");
            Intent intent = new Intent(Config.PUSH_NOTIFICATION);
            intent.putExtra("title", title);

            LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
            localBroadcastManager.sendBroadcast(intent);

        }
And write below code in your class file: 
private BroadcastReceiver mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   //To initialize broadcastReceiver in your activity
    LocalBroadcastManager.getInstance(this).registerReceiver(mHandler, new IntentFilter("your package name"))
    setContentView(R.layout.activity_main);
}
And then below code is add in onCreate() where you want to show messages and count of messages
//To receive notification in foreground where you want to show messages
mHandler = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(PUSH_NOTIFICATION)) {
            // new push notification is received
            String message = intent.getStringExtra("message");
            showReceiveMessageDialog(message);
        }
    }
};
To receive messages when app is in foreground:
//push notification in background
if (getIntent().getExtras() != null) {
    String message = getIntent().getExtras().getString("message");
    showReceiveMessageDialog(message);
}
write this code in your activity class file where you want to receive messages:
 @Override
 protected void onResume() {
 super.onResume();

 // register new push message receiver
 // by doing this, the activity will be notified each time a new message arrives
 LocalBroadcastManager.getInstance(this).registerReceiver(mHandler,
 new IntentFilter(PUSH_NOTIFICATION));

 // clear the notification area when the app is opened
 NotificationUtils.clearNotifications(getApplicationContext());
 }

 @Override
 protected void onPause() {
 LocalBroadcastManager.getInstance(this).unregisterReceiver(mHandler);
 super.onPause();
 }

And please add services in your Manifest file to receive push notification from firebase.

Add Firebase to your application
  • Create an account on Firebase.
  • Create a project in Firebase console.
  • Click Firebase for Android app and follow the instructions.
  • When prompted, enter app’s package name.
  • Download google-services.json file.
  • Place google-services.json file in your app’s module folder. Typically /app.

 

Add  dependencies on your app

dependencies {

classpath ‘com.android.tools.build:gradle:2.2.0-rc1’

classpath ‘com.google.gms:google-services:3.0.0’

}

To Add Firebase messaging dependency

dependencies {

compile ‘com.google.firebase:firebase-messaging:9.6.0’

}

apply plugin: ‘com.google.gms.google-services’

 

Conclusion: Firebase plays the vital role in the development of mobile application in IOS and ANDROID mobile. By using firebase you can manage data from firebase to send the notification, store real-time database, it manages half of the work itself.

 

Read More Why firebase is the best as a Mobile Application backend?

Android

PHP: Hypertext Preprocessor is a server-side scripting language designed for Web development, but also used as a general-purpose programming language

PHP framework is a library that makes the life of site developer easier by for example hiding some complexities of HTTP protocol or by adding some useful functions. For example the Codeigniter implements so called MVC which makes developer to think a level higher than HTTP
PHP application framework are part and parcel of a programmer’s professional life. Not any framework will suffice. Each framework has its own advantages and disadvantages, so it is important to choose one that will best on your project requirement or suit you. in this article, we look at one codeigniter framework is best from other in particular scenario.
We will try to know what is CodeIgniter MVC Framework and what it is?
CodeIgniter is one of the oldest PHP frameworks available. Focused onRAD, CodeIgniter was released in 2006 and remains popular among developers. Let’s take a look at some its main features and benefits. latest version of codeigniter is 3.X, and upcoming codeigniter version is 4.X
What is MVC(Model-View-Controller)?

mvc
The Model-View-Controller (MVC) is an architectural pattern that separates an application into three main logical components: the model, the view, and the controller.

Model-Data Handler: It represents your data structure, usually interacting with the Database or like insertion, deletion all that part comes in this file
View-User Interface: It is used to represent your web project i.e to show the UI part normally it contains the HTML and CSS code.
Controller: The Controller in MVC architecture handles any incoming URL request. Controller is a class, derived from the base class System.Web.Mvc.Controller. Controller class contains public methods called Action methods. Controller and its action method handles incoming browser requests, retrieves necessary model data and returns appropriate responses.
Reasons why CodeIgniter is better than other PHP Frameworks 
⦁ No need to install : Believe it or not, really no need to install need to download codeigniter from the codeine official site and paste it to root directory and replace the folder name to your project name that’s it,
⦁ Configuration: Codeigniter MVC framework has very simple configuration, you just have to first install the framework as per your system configuration then at the time of programming open the config.php load the library, database, arrays all in that and save that’s it then. You don’t have to write the database name every time to use it. “Write once uses everywhere”.
⦁ Execution Time : The most important point which attracts every developer towards the PHP is its execution time php give the response too fast that till now no technology is in this world can give the execution so fast.
⦁ Database Abstractions or More: Every decent framework has a database abstraction layer nowadays and CI is no exception. You can easily create insert, update and delete statements without needing to write raw SQL. Handle connections to multiple databases within one application and connect to any of the following database types: MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, or ODBC. CI also lets you manipulate your database like add/remove columns from tables, create new tables and remove old ones using it’s new database forge library.
⦁ File Organization: When you first install the CodeIgniter framework at that time only it contains the many files application which contains the sub-folders as controller, config, model, view etc.This is the main folder which we have to deal to implement the project.
⦁ Error Handling: Handling errors in the web development had always been a big concern for the programmers as it eats lots of time. But, CodeIgniter has made error handling an easy job. By writing a code of one line, you can get all errors appear on your screen. This way, you can easily spot the errors in the quickest way and can fix it right there.
⦁ CI Online Community: Codeigniter has a very effective and active community where your questions has been replied within minutes. Its very active community I have ever experienced. With an active online forum, Codeigniter has also a Wiki page where you can download many great libraries and plugins developed by CI community. These plugins are free to download and use. With these useful plugins and classes.

Read More Why Codeigniter is the PHP Frameworks for Enterprise Web App Development.

PHP

 

AGILE methodology is a methodology which provide continuous iteration of development and testing  the software development lifecycle of the project. Development and testing of the software activities are opposite of waterfall model. There are various agile development methods  like scrum,crystal methodologies,dynamic software development method,feature driven development ,lean software development and extreme programming.

Scrum

Scrum is an agile development method which  focus  on how to manage tasks within a team . Scrum is use for empowering team and working in small team for improve software.
It consists of three roles, and their responsibilities are explained as follows:

  • Scrum Master
    • Master is responsible for setting up the team, sprint meeting and removes obstacles to progress
  • Product owner
    • The Product Owner creates product backlog, prioritizes the backlog and is responsible for the delivery of the functionality at each iteration
  • Scrum Team
    • Team manages its own work and organizes the work to complete the sprint or cycle

Product Backlog

This is a repository where requirements are tracked with details . It should be maintained and prioritized by Product Owner, and it should be distributed to the scrum team. Team can also request for a new requirement addition or modification or deletion

Process flow of Scrum Methodologies:

Process flow of scrum testing is as follows:

  • Each iteration of a scrum is known as Sprint
  • Product backlog is a list where all details are entered to get end product
  • During each Sprint, top items of Product backlog are selected and turned into Sprint backlog
  • Team works on the defined sprint backlog
  • Team checks for the daily work
  • At the end of the sprint, team delivers product functionality

Most of the company follow Agile methodology for mobile application development . We can provide early and ongoing delivery of the software and app modules to our valuable clients with the help of agile methodology. We have found that mobile application development  process becomes more quick, easy and efficient using agile technology. Agile technology provides lightweight development process and value to build applications in short cycles with quality check in every step.

Benefits of agile methodology :

  • Visibility
  • Cost Control
  • Simple design
  • Personalization
  • Ability to adapt to changes
  • Focuses on Business Value
  • Predictable Costs and Schedule
  • Even late changes in requirements are allowed

                  Waterfall Vs  Agile methodology

waterfall_model

agile

Waterfall Model

Waterfall development is  not allow much reflection or revision. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented or thought upon in the concept stage.

      The major disadvantages of the Waterfall Model are as follows
  • No working software is produced until late during the life cycle.
  • High amounts of risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.
  • It is difficult to measure progress within stages.
  • Cannot accommodate changing requirements.
  • Adjusting scope during the life cycle can end a project.

Agile Methology

       The major disadvantages of the Waterfall Model are as follows
  • Rapid, continuous delivery of useful software is satisfied the customers.
  • People and interactions are emphasized rather than process and tools. Customers, developers and testers constantly interact with each other.
  • Working software is delivered frequently (weeks rather than months).
  • Face-to-face conversation is the best form of communication.
  • Close, daily cooperation between business people and developers.
  • Continuous attention to technical excellence and good design.
  • Regular adaptation to changing circumstances.
  • Even late changes in requirements are welcomed.

Agile methodology execution

Agile_Project_Management_by_Planbox

Step1 :  First Team will analysis requirement.
Step 2 : Designers will Design Application.
Step 3 : Developers will Build Application.
Step4 :  QA team will ensures excellent Quality for the application.
Step5 : We will take the feedback from our client if modifications or issues are there then
process will be continue
Step6 : If there is no any issues then successful Mobile Application will be delivered to the client.

Conclusion:

If you want to be agile, the first tenet is “Every project needs a slightly different set of
policies and      conventions, or    methodology.” People’s attitude toward communication, user
involvement, and frequent releases is more important than the specific process you use.

Read More Agile Methodology for mobile application development

Android iPhone

App Performance for Android?

Implementing a great app depends upon which necessary key factors is developed while building the application. Because of unnecessary things which will degraded app performance at runtime. These some of factors to communicate your app’s performance. For example, users want apps that:

Start up quickly.

Respond quickly to user interaction.

Bugs and Crashes Free.

Minimum APK size, etc.

Let’s see what are the 8 key features to improve the performance of app:

1. Optimize for Battery life:

Battery life is the most important aspect of the mobile user experience. A device without power offers no functionality at all. For this reason, it is critically important that apps be as respectful of battery life as possible.

2. Reduce the APK size:

Users often avoid downloading apps that seem too large, Allow new users to download your application. they first prefer what is APK size to download the app.beacuse of memory management is performs the big role in low memory devices. In India, low memory devices are used on a large scale.

3. Manage your app’s memory:

Random-access memory (RAM) is a valuable resource in any software development environment, but it’s even more valuable on a mobile operating system where physical memory is often constrained. Although both the Android Runtime (ART) and Dalvik virtual machine perform routine garbage collection, this does not mean you can ignore when and where your app allocates and releases memory.

You still need to avoid introducing memory leaks, usually caused by holding onto object references in static member variables and release any reference object at the appropriate time as defined by lifecycle callbacks.

4. Design for Seamlessness:

Even if your application is fast and responsive, certain design decisions can still cause problems for users because of unplanned interactions with other applications or dialogs, accidental loss of data, blocking, and so on.

To avoid these problems, it helps to understand the context in which your applications run and the system interactions that can affect your application. In short, you should make to develop an application that interacts seamlessly with the system and with other applications.

5. Keeping your app Responsive:

It’s possible to write code that wins every performance test in the world, but still feels sluggish, hang or freeze for significant periods, or take too long to process input. The worst thing that can happen to your app’s responsiveness is an “Application Not Responding” (ANR) dialog.

In Android, the system guards against applications that are insufficiently responsive for a period of time by displaying a dialog that says your app has stopped responding.

6. Avoid creating unnecessary Objects:

A generational garbage collector with per-thread allocation pools for temporary objects can make allocation cheaper, but allocating memory is always more expensive than not allocating memory.

As you allocate more objects in your app, you will force a periodic garbage collection, creating like degraded user experience.

7. Prefer static, over virtual Objects:

If you don’t need to access an object’s fields, make your method static. Invocations will be about 15%-20% faster. It’s also good practice because you can tell from the method signature that calling the method can’t alter the object’s state.

8. Remove unwanted Dependencies (Libraries):

If we use selective and necessary dependency will directly relate to memory management and it keeps much faster to read data. so remove unused dependencies and use only those dependencies which are important.

Conclusion:

To improve the application performance try to generate limited amount code and reusable functions to maintain data size. Also use relative functions, tools or plugins if necessary. else remove not used functions and irrelevant code to boost up app performance.

Read More What are the 8 key features to improve the performance of your app?

Android Mobile Development