Mobile application development for iOS and Android

Mobile application development for iOS and Android

Mobile applications for iPhone, iPad or any Android device (smartphone or tablet PC) are wide spread as add-on for corporate software or stand-alone application to provide some solution for user.

Mobile application can provide solution for service providing, advertisement, sales, CRM, software as a service etc.

I am experienced developer of complex applications for Mobile and Web. I also have project management skills and understanding of the network infrastructure. This allows me to create effective applications for a single user, and for the collective work. Also I am experienced in integrating different software data into one structure.

I can create technical design (front & back end) and UI of project.

I can write clean, modular, robust code to implement the desired requirements with little or no supervision.

I can write user manual for developed application if it is needed.

Mobile platforms: iOS (Objective-C, full stack) & Android (Java, full stack)
Web-services (LAMP): PHP + MySQL + JSON / XML
Data Exchange: JSON / XML / CSV / Excel / Distributed databases
Third part API: Bluetooth Low Energy API, in-app purchase, AdMob, Google Analytics
Social networks: Facebook / Twitter / VK.com / Google Plus

Project management: SCRUM / eXtreme Programming /Agile

My experience is:
with Android started in 2010
with iOS started in 2011
with PHP/MySQL started in 2000

I have developed since 2010 more than 20 mobile applications from specifications to upload to AppStore and Google Play Market and have upgraded more than 37 applications for iOS and Android. Projects less than 10 people days don't included to this statistics. My own projects are not included to statistics too.

Mobile application is developing in these stages:
1. Analyzing of requirements to application, feature ranging by priorities, splitting features between future application versions. So we have created application development strategy.
2. Creating of prototype of application for:
a). User interface design: if there is enough place for all controls
b). User experience: defining structure of screens and interaction design.
3. Screen by screen application developing due to specification (project description). Project is divided for milestones. Each milestone has duration of 3-5 days for development and 2-5 for testing by customer representative. After milestone is completed next mile starts.
4. Beta test of entire application.
5. Application upload to AppStore and/or Google Play Market using customer developer account.
Cost of mobile application depends of:
- list used frameworks;
- used algorithms;
- using third party libraries;
- amount of target devices and OS versions;

For defining estimates “in rough” you can send to me only one page description of wanted application to my e-mail vovan4u@ukr.net
As more specification is detailed as accurate estimates I can provide.
Please send your requests to my e-mail
Vlad.

E-mail: vovan4u@ukr.net
Skype: peredovik.propagandi

Please take a look at my portfolio and awards for applications I have developed.

Here is list of applications which I have developed. Please take a look at these application and pay attention to used frameworks and libraries.

My applications at AppStore:
https://itunes.apple.com/us/app/qr-and-bar-code-scanner/id792342030
https://itunes.apple.com/us/app/iamhere-personal-location/id790282884
https://itunes.apple.com/us/app/snake-charmer/id835922927

My applications at Google Play Market:
https://play.google.com/store/apps/details?id=org.peredovik.snakecharmer
https://play.google.com/store/apps/details?id=org.peredovik.qrandbarcodescanner
https://play.google.com/store/apps/details?id=org.peredovik.whereismyphone
https://play.google.com/store/apps/details?id=org.peredovik.iamhere
https://play.google.com/store/apps/details?id=org.peredovik.batterychargewidget
https://play.google.com/store/apps/details?id=org.peredovik.iambusy
https://play.google.com/store/apps/details?id=org.peredovik.eurochecker

Awards for my applications

1. I have developed the series of communication (B2B) application for iOS & Android both types: for administrator and for end user. This application was shown at trade show “IMEX America” in 2014. IMEX America is worldwide exhibition for incentive traveling, meeting & events.





2. I had developed Clock widget application for Android. This application is preinstalled in series of devices (local brand in France) : 3 smartphones and 1 tablet PC.

3. Some of my applications were awarded by editors of file archives for mobile devices:











Portfolio

These applications for iOS and Android were created just only to show my skills to use some technologies and frameworks.

Applications in Apple AppStore (my contribution in developed is 100%):
https://itunes.apple.com/us/app/qr-and-bar-code-scanner/id792342030
This application allows scan and decode QR and Bar codes of different formats. After Scanning the code is saved into the applications database and ready for posting to users account at Facebook, Twitter, VKontakte or by email.

https://itunes.apple.com/us/app/iamhere-personal-location/id790282884
Application "I am here" for your own tracking of movement and / or sending your location by SMS or email. Current coordinates are sent as a link to Google Maps website.
Tracking movements unloaded in KML format and allows you to upload the tracking log to view by the program on your computer.

https://itunes.apple.com/us/app/snake-charmer/id835922927
Snake Charmer is a dynamic arcade game in which you need to collect prizes while avoiding touching the walls and crossing itself (except for "Zen" mode). Apart from the main prize - the apples there are secondary prizes : mouse , egg, mushroom. The game has three modes: " Classic " (9 levels) , "Arcade" (one life) , "Zen " (infinite).

Applications in Google Play Market (my contribution in developed is 100%):
https://play.google.com/store/apps/details?id=org.peredovik.snakecharmer
Snake Charmer is a dynamic arcade game in which you need to collect prizes while avoiding touching the walls and crossing itself (except for "Zen" mode). Apart from the main prize - the apples there are secondary prizes : mouse , egg, mushroom. The game has three modes: " Classic " (9 levels) , "Arcade" (one life) , "Zen " (infinite).

https://play.google.com/store/apps/details?id=org.peredovik.qrandbarcodescanner
Application "QR and Bar code scanner" allows scan and decode QR and Bar codes of different formats. After Scanning the code is saved into the applications database and ready for posting to users account at Facebook, Twitter, VKontakte, Google plus or by email. For posting to Facebook, Twitter, VKontakte user can use internal client or original application by his choice.

https://play.google.com/store/apps/details?id=org.peredovik.whereismyphone
Sometimes the phone accidentally forgotten at home, lost in an apartment or even worse on the street. With this app you can remotely control your phone via SMS commands.

https://play.google.com/store/apps/details?id=org.peredovik.iamhere
Application "I am here" for your own tracking of movement and / or sending your location by SMS or email.
Current coordinates are sent as a link to Google maps website with current coordinates.
Tracking movements unloaded in KML format and allows you to upload the tracking log to view by the program «Google Earth".

https://play.google.com/store/apps/details?id=org.peredovik.batterychargewidget
This widget allows you to view information about the current status of the battery the phone or tablet. Displays the following data: the battery level, temperature, and battery voltage.

https://play.google.com/store/apps/details?id=org.peredovik.iambusy
Calls annoy some subscribers. Turning off the phone does not give the desired result. However, there is a solution.

https://play.google.com/store/apps/details?id=org.peredovik.eurochecker
One of the security features Euros a serial number. Number of each note is unique and shaped by a particular algorithm

These applications are under NDA, so I can write about features only in general:
1. “Family” of applications to interact with iBeacon (Bluetooth Smart Device): client application to interact with beacon + application for iBeacon administration: iBeacon options change + adding new devices into system (integration with web). Applications were created for iOS (iPhone + iPad) and Android (smartphone + tablet PC).
Application uses 2way data exchange. Later was added feature of interaction with customized iBeacon: custom firmware allows iBeacon to execute some commands.

2. Preloaded clock widget for family of Android devices: 3 smartphones + Tablet PC.
Clock widget has 3 hands and can be placed on the screen and lock screen of device. Energy saving function has been developed also.

3. Custom application to interact with Estimote beacons. Every Estimote beacon was linked to promoted product. Integration with e-shop.

4. Application (versions iOS + Android) for travel company. Application allows customer to contact concierges service manager.

5. Upgrade of Android application for phone security: save & restore contact book, SMS, call log, users photos & videos.

6. Custom client for YELP social network (iOS: iPhone + iPad): search for service providers, grouping, messaging, GPS location, integration with web.

And a lot of other applications… some upgrades, small features, bug fixings, some typical procedures… but these tasks were not so unique to write about them:
- add statistics Google Analitycs & Flurry, custom internal statistic services;
- in-app purchase;
- integration with Facebook, Twitter, GoogelPlus, LinkedIn
- changing third party libraries and components with native and vice versa, upgrading third patry components
- control elements customizing
- bug fixing, next application version development
- etc.

iOS application rejected from the AppStore

Unfortunately sometimes application is rejected by AppStore’s editors.
Reasons of rejection can be split into three types: advertisement, conceptual, technical.

Advertisement's reasons are wrong information about application, grammar mistakes in description and so on.

The conceptual reasons are breaking rules described in Human Interface Guide Book. You can read about approaches to creation successful application in this guide from Apple:
https://itunes.apple.com/ua/book/ios-human-interface-guidelines/id877942287?mt=11

Human Interface Guide Book is "manual" for checking application for moderators of AppStore. So you have use this book as collection of rules to application.

If your application has conceptual issues by opinion of AppStore’s support you have a choice:
1. You can fix all issues in best manner to fit requirements of HIG Book.
2. If application is huge or you have sent it for review several times you have to change your strategy. My approach is to make application as simple as it can be and upload it for review step by step with adding of new features. It allows for moderator to see your application more detailed and understand how it works. So moderator sees history of your application’s submissions and can figure out how it should work.

The technical reasons of rejections are:
1. Application “traps” and “crashes”.
2. Nonstandard (unusual for iOS) user interface.
3. Beta version, uncompleted application.
4. Some compiling issues, here is about these requirements: minimal version, supported platforms, screen sizes, etc.
5. Application has not enough features to be published.

I have positive experience of writing appeals to support of AppStore and changing applications to allow publish it at AppStore. For success I used:
1. Changing user interface to requirements of HIG Book.
2. Adding features to application.
3. Fixing of issues, changing structure (architecture) of application according to requirements of HIG Book.

For revision of your application I need:
1. Access to your iOS developer account.
2. Sources of application.
3. List of similar application (optional)

Cost of your application revision procedure is 50 USD. After this procedure I will provide to you my conclusion about possible appropriate solution(s).

You can contact me by e-mail vovan4u@ukr.net or  Skype: peredovik.propagandi

Completion of iOS / Android mobile application

Not every developer is able to complete application and publish it at AppStore or Google Play.

That is why some my clients are asking me to complete theirs application.

The first step is to define how the application is done.

My estimates and clients estimates about how much application is completed of application are different. The main reason is that some developers do “wrapping” (interface features) first and “mathematics” and “logic” of application are omitted. So some times is too difficult to me explain to client that application doesn’t have (include) most expensive procedures and modules.

Sometimes I suggest to refactor code instead of patching it to correct state.

In any case first of all I have to review code of you application and compare it to specification to define how it should work and what exactly were completed.

To provide estimates for your project I need:
1. Specification (project description) + list of tasks to complete.
2. Source files.
3. Mockups and sketches of screens.
4. Optional: access to webserver to webservices
5. Optional: access to third party API control panels and description

Cost of code review procedure is 50 USD.

You can contact me by e-mail vovan4u@ukr.net or  Skype: peredovik.propagandi

Adding new features for your application

Some companies asks me to add new features to their application.

As usual I do tasks like these:
1. Adding new screens with new features: in-app purchase, new services integration, integration statistics of application usage, etc.
2. Changing application to new version of API or webservices.
3. Adding support of screen sizes, changing operating system services, new devices support, etc.
4. Updating of third party libraries.
5. Updating and changing structure of application: new user interface, new way of application using, etc.
6. Changing application due to new requirements of operating system: application developed 2-3 years ago has a lot of “tails” with unused (incorrect for current version) code, a lot of these “tails” are reason for application issues and crashes.

Like new application developing to provide estimates I need from you:
1. Specification – project description with new features.
2. Mockups of new screens.
3. Source files.
4. For Android application you should have developer key.
5. Optional: access to web services and API services account.

Revision of application and providing estimates about adding new features to your application costs 50 USD.

You can get additional information by email vovan4u@ukr.net or Skype: peredovik.propagandi

Bug and issues fixing in mobile application

Issues (bugs) is a result of unfinished task in method or function in applications code. I am sure you know what is application crashes. One thing bug in third party application, but other thing is bug in your application.

If your developer is unavailable or is not able to solve this bug you can hire me to solve it.

I am experienced developer for iOS and Android. I have focused in development for mobile devices since 2010. My first commerce application was developed in 1996.

In my work I define these kinds of errors:
1. Application doesn’t fit requirements defined in specification – most popular and not critical. As usual developer and tester have misunderstood requirements or have missed page in document. As usual are easy to find at first look to screen or first use of application. Examples: empty field, incorrect value in the field, some checks are missed: if Internet connection is available or if user typed in incorrect value.
2. App flow is incorrect according to specification. This kind of issue can be found only after particular actions or conditions. The source of this issue is incorrect internal application's structure and errors in protocols of interactions with user or/and with external services. Example: sync procedure called for all data, but should be called only for new data or updated data; data exchange called in main thread, not in background; all sync procedure called at once without queue.
3. Errors in third party libraries. Some developers are too lazy to create custom class for developed application. So they use third party libraries. As usual 80% of “features” of third party libraries are available in native controls for target operation system (iOS or Android). They get more fast in development but get a lot of problems in the future. The main problems of third party libraries are: memory leaks due incorrect structure for integration into application; some libraries are trapped due lack of needed resources due to missed checks for them. As result some libraries are updated every week but still doesn’t have stable version.
4. Memory leaks. As usual these kinds of errors are typical for newbie or middle level developers. The main reason for raise of this error in application is incorrect “release” of used object. In general application works but sometimes it unexpected crashes or traps. Sometimes these errors are raised by third party library.
5. New version of operation system has new methods, some methods are deprecated, some methods are changed. So application works incorrect at device with latest OS version: buttons are not working, the next screen can’t be shown, some elements are jammed, etc.
6. Application crashes due to missed procedure to catch exception. The most popular reason is that developer doesn’t check impossible value and tester was not tested application as it needed.
7. “Tails” of old code which are not supported in actual versions of operating systems due to deprecated methods. It is typical for iOS of version 5 / 6 / 7 / 8 and Android for versions up to 2.3, version 2.3.*, version 3.* for tablets, version 4.* +
These “tails” are too hard isolate in application methods. The best solution for this kind of bug is refactor the code.
8. Changing API and / or data formats of services for data exchange.

To provide estimates for bug fix I need:
1. Last version of application and it’s sources.
2. Detailed description how can I get this bug. You are welcome to make small video for YouTube.
3. Access to developers account for iOS application.

Cost for one bug diagnostic is 50 USD.

!!! Important: estimates are provided only for mentioned bugs. Sometimes one bug hides other bug, example: screen 2 is not shown. After bug was fixed discovered incorrect information at screen 2. Data for screen 2 was provided by internal database.
In this example described 2 bugs:
bug 1 (for diagnostic): screen 2 doesn’t shows
bug 2 (hidden, was found after fixing of bug 1): incorrect data in database for the screen 2.

Case solutions for bug fixing:
1. Bug is fixed by full refactoring of code according to guides of operating system.
2. Bug is fixed by adding missed methods and / or parameters, only some methods are refactored.
3. Error in third party library: update of third party library to latest version or replacing “features” provided by third party library to native elements for OS.

Now I use recommendations only for these target versions of OS:
for iOS – version 8.1
for Android  - version 4.0 +

Result of bug diagnostic:
suggestion(s) of solving bug and estimates for cost of fixing and timeframe.


Payment:
upfront payment 50% of cost, the other part of payment after bug is fixed.

Result of fixing:
trying to raise application crash like provided bug description – bug is not raised.

Access to fixed version is provided by tools of Developers account for iOS application and .apk file for testing for Android application.

Also I can provide video for YouTube of testing.

You can contact me by email vovan4u@ukr.net or Skype: peredovik.propagandi