Mobile newsLetter

 Mobile newsLetter  

Google

Apple

Android N to use Oracle’s Open JDK. know more

Apple Granted 59 Patents. Know more

Android Developers can choose when app goes for update. Know more

Update Live Mobile Apps Instantly. Know more

Google Invents an Electrocardiograph Device for Garments. Know more

OS X will be renamed Mac OS Know more

 

Android Developer Preview. Know more

What’s New about IOS9. Know more

Google Invents Global Communications Know more

Swift Programming tools & resource. Know more

 if any questions, please post a comment. Happy coding 🙂

remove the bottom line in editText

Sometime you wondered how to change certain attributes of a EditText. but you want it to be applied globally across the app rather a individual edittext. So we always opted for styles.

I have come across interesting thing in Edit text to hide the line under the widget.

To hide the bottom line in Edit Text: set the background to @null

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@null"/>

 

Custom Fonts Android – Calligraphy

During your development of app, there might be scenario of using Custom font ( most UX designer suggest using custom font). it’s quite easy to add the font for specific view once. but if the designer follows similar pattern across most views..then its a real pain.

In android, if you need to have a custom font, you need to create a custom view class and achieve it. so if you have a text view, Edit text, button etc., all these widgets uses custom font, then you end up creating custom class for each widget. So if widgets keep growing, you will end up creating more custom class which becomes bit hard if you have a lot of custom class.

I looked for a solution in android developer, but unable to find a solution for calligraphy.. Hopefully future android version might have support for it. Finally I ended up in Calligraphy library written by Christopher Jenkins. Its pretty easy to apply to your existing app. if you have style sheet for your app, it’s quite easy to apply the font path else you need to set it in each widget.

Refer the Link on the configuration of Calligraphy library and let me know if you are facing any issue.

Happy coding 🙂


		

Steth0 – Great Debug brige for Android Apps

Stetho is one of the great debug tool i have come across during my android development. it has helped me to identify the issue with any Rest call and also fix them easily. In addition to it, it can access to the DB information of the clients…wow…one tool to explore lot of android apps in ease. refer http://facebook.github.io/stetho/ – ( Features, setup, How to use it…etc).

Configuration

Screen Shot 2016-03-31 at 10.45.33 am

Integrating with App

Its best suggested to use it only in Debug mode. Try to initialize stetho in your application onCreate.

if (BuildConfig.DEBUG) Stetho.initializeWithDefaults(this); // integrate with Stetho

Also help your http client to know about stetho by adding the below code.

if (BuildConfig.DEBUG) networkInterceptors().add(new StethoInterceptor()); // debugging with stetho

Voila…you are done now with integration. Time to launch the tool

Using Stetho tool

When enabled, developers have access to the Chrome Developer Tools feature natively part of the Chrome desktop browser. Just launch your chrome browser and type

chrome://inspect/

refer the screenshot below. Just click Inspect, Stetho launched

Screen Shot 2016-03-31 at 10.55.02 am
Resources Tab : access DB info of the app. Quite easy.

Screen Shot 2016-03-31 at 11.05.09 am

Network tab: Provides network call with detail headers, param and response.
Pretty good info if your app is using lot of Rest calls.

Screen Shot 2016-03-31 at 11.12.48 am

I haven't fully realize the tool, but it worth mentioning that it helped me
in development.

Happy Coding 🙂

Appium Setup – Test tool

Appium Setup – Test tool for Mobile Apps

Installations steps:

·    Brew: Package Manger Install – helpful in installing most apps/tools for mac OS.

Brew install command in cmd

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

Link: http://brew.sh/

Check Status: type brew doctor – To Check for any issues. If No Issues, then you should be able to see the msg  “Your system is ready to brew”

·    maven

Using brew, you can install the maven. Its very easy. Just type the below command in cmd

“brew install maven”

·     Appium – Automation testing tool for IOS / Android

brew install node      # get node.js
npm install -g appium  # get appium

 Link: http://appium.io/

To verify that all is setup accordingly for each platform, run the following from command line:

"appium-doctor"

·     Appium Server

  • Automation tools works on client-server based model.
  • Test Client will be your app which you will testing with your test instructions
  • Server will be appium server. To execute the appium server, type the below command in Terminal.
Start Appium Server:  "appium &"

Appium GUI

You can also use GUI Interface to run the Appium server, configure the capability and also use the Appium inspector to identify the UI elements (similar to Android UIAutomator). For instructions on setting up GUI interface, checking out code etc.

[Shell Script] sed: 1: invalid command code J Not working in Mac – Replace old string with a New String in a file

Hi friends,

Recently I was working in Shell script to replace a content of a file. I have used powershell for windows and shell for mac. This is specific to my build server. I was facing one peculiar issue with sed command usage.

Command Used: sed – i ‘s/oldString/newString/g’ filename

Error: sed: 1: invalid command code J on Mac OS

Though i extension is optional in ubuntu, in mac its mandatory to give it. refer the below highlighted screenshot.

sed screenshot

To solve this, I just gave a Empty string Extension like sed – i “”  ‘s/oldString/newString/g’ filename. Voila it solved the issue.

I found it hard to solve this issue as I didnt get any clear pointers. So I thought of creating the page,so it will be helpful for developers.

Jenkins – How to Trigger a Sequential Build ?

Sometimes in our project, we may need to trigger sequential jobs possibly to avoid manual starting of jobs. I too has similar issues and I was looking for multiple forums in this regard. I have collected the necessary information required for this job and posted in this blog.

Option 1: Use existing Jenkins Feature

  • Click Customize your jenkins job
  • Build Triggers > Build after other Projects are built.

you can mention which projects needs to be watched and you have multiple options such as

  1. Trigger only if the build is stable
  2. Trigger even if the build is not stable
  3. Trigger even if the build fails

This avoids multiple dependent projects not to be triggered if you select option 1.

Option 2: Parameterized Trigger Plugin 

  • Create a wrapper job for your sequential jobs
  • For each sequential job
    • Select Build->Add build step->Trigger/call builds on other projects
    • Enter the sequential job name
    • Check the ‘Block until the triggered projects finish their builds’ checkbox (this only appears when you have the Parameterized Trigger Plugin installed)

Now when you run the wrapper job, all the triggered jobs will be run in order and sequentially. You of course also have the option of using the parameters functionality of the plugin too.

Personally, I have used Parameterized Trigger Plugin has it provides lot of Functionality.

Reference: https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin

Option 3: Build Pipeline Plugin

  • Gives the ability to form a chain of jobs based on their upstream\downstream dependencies. Downstream jobs may, as per the default behaviours, be triggered automatically ,or by a suitable authorised user manually triggering it.

Reference: https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin

Option 4: Downstream –Ext Plugin

This plugin supports extended configuration for triggering downstream builds:

  • trigger build only if downstream job has SCM changes
  • trigger build if upstream build result is better/equal/worse than any given result (SUCCESS, UNSTABLE, FAILURE, ABORTED)
  • for Matrix (alias multi-configuration) jobs you can decide which part of the job should trigger the downstream job: parent only, configurations only or both

Reference: https://wiki.jenkins-ci.org/display/JENKINS/Downstream-Ext+Plugin

Android – Alpha & Beta Testing

Alpha and Beta Testing

It’s always valuable to get real-world feedback from users, especially before launch. Google Play makes it easy to distribute pre-release versions of your app to alpha and beta test groups anywhere in the world.

In the APK section of your Google Play Developer Console you’ll find the Alpha Testing and Beta Testing tabs. Here you can upload versions of your apps’ APK files and define a list of testers as a Google Group or Google+ Community. Once this is done you’ll receive a URL that you forward to your testers, from which they can opt-in to the testing program.

1

After opting-in, your testers then go to your app’s product page and when they download the app Google Play will deliver them the alpha or beta version as appropriate. Incidentally, if a user happens to be opted-in to both your testing groups, Google Play will always deliver them the alpha test version.

Note that users cannot provide feedback and reviews on alpha and beta versions of your apps. To gather feedback you could used the Google Group or Google+ Community, or setup an email address or your own website.

You can use these testing programs to optimize your apps, help with rollout to new markets, and start building your community. There is also more information on using beta test in the Launch Checklist and Localization Checklist.

Use alpha/beta testing

Using the Google Play Developer Console, you can select groups of users to alpha/beta test different versions of your app and gradually roll out an app update over time, known as a staged rollout.

Set up an alpha/beta test

With the alpha/beta testing tools available in your Developer account, you can test different versions of your app.

  • You don’t need a production APK to publish an alpha/beta app.
  • If you’re testing an existing app that you’ve published before, only users in your test group will receive an update for your Alpha/Beta version. If you’re testing a new app that you haven’t published before, only users in your test group can find and download your app.
  • After publishing an alpha/beta APK, it may take up to 24 hours for your test link to be available to testers.
  • If you make any changes to your app’sPricing & Distribution page, including setting your app price to Paid or Free, it affects your production, alpha, beta, and any future versions of your app.

Note: When you’re starting a new alpha/beta test, it’s a good idea to start with a small group of alpha testers, then expand your test to a larger beta test group.

Step 1: Add an APK to your alpha/beta test

  1. Sign in to yourGoogle Play Developer Console.
  2. Click All applications.
  3. Select an app.
  4. On the left menu, clickAPK.
  5. Near the middle of the page, click theAlpha Testing or Beta Testing
  6. Click theUpload
  7. Select your APK file.
  8. Select thePublish

refer below screenshot for Beta & Alpha Besting,

3

2

reg the difference between Alpha and Beta testing, refer Q&A section at end of document.

Step 2: Select a test group

If you haven’t already made one, you need to make a Google Group or Google+ Community that includes people you want in your alpha or beta test group. Once you’ve made a Google Group or Google+ Community, you can add it to your list of testers on your Developer Console.

Note: If a user is eligible for both alpha and beta versions, they’ll receive the alpha version.

Here’s how you add your Google Group or Google+ Community to your list of testers and share a link to your app.

  1. Sign in to yourGoogle Play Developer Console.
  2. Click All applications.
  3. Select an app.
  4. On the left menu, clickAPK.
  5. Near the middle of the page, click theAlpha Testing or Beta Testing
  6. Under “Alpha testers” or “Beta testers”, clickManage list of testers.

4 5

  1. Type the Google Group email address or Google+ Community URL.

Note: When you add a test group, make sure to use the following formats:

Google Groups: yourgroupname@googlegroups.com

Google+ Community: https://plus.google.com/communities/123456789012345678901

  1. ClickAdd.
  2. Copy and share the displayed URL link with your testers.

Note: The opt-in link only shows when an app is “Published.” Apps in “Draft” or “Pending publication” won’t show the opt-in link.

After clicking the opt-in link, your testers will get an explanation of what it means to be a tester and they’ll be able to opt-in.

Step 3: Get feedback

Once your alpha or beta testers have opted-in and installed your app using the link you provided, they’ll be automatically updated to the test version.

Because your testers can’t leave public reviews for alpha/beta apps on Google Play, it’s a good idea to let them know where they can provide you with feedback (an email address, website, etc.).

Alpha/Beta availability

Alpha and beta APKs need to have a higher version code than production APKs to be available for testing.

  • To be available for alpha testers, alpha APKs need to have a higher version code than beta APKs.
  • If a beta APK is uploaded with a higher version code than an alpha APK, the alpha version will automatically be deactivated.
  • If a Production APK is uploaded with a higher version code than an alpha or beta APK, the alpha and/or beta version will automatically be deactivated.

Alpha testing group users are eligible for the alpha, beta, or production version of your app with the highest version code that is compatible with their device. Beta testing group users are only eligible for the beta or production version of your app with the highest version code that is compatible with their device.


Q&A

1.What is exactly the difference between them, especially between Alpha and Beta?

There isn’t much difference between the two aside from the fact that you just start with a small number of testers for alpha testing and switch to a bigger group for beta

2.Only the production stage is available for people on the play store, right?

Yes, that is correct.

3.which one/s allow to publish only to specific people/percentage , and in which way do you do it?

You can do that for both. To do alpha,beta testing you need to send invites to people on their google+ accounts so that they can access your app and be able to download it. The invites is usually in the form of a link directing them to your app on the play store which is only visible to them after they accept the invite

4.which stage allows in-app billing, at least for testing ? I don’t get why can’t i test it out even before uploading the app.

You can do in-app billing for both alpha,beta testing. Check the link:http://developer.android.com/google/play/billing/billing_testing.html

5.in the percentage method, if I publish a new app version using the same way, will it first update for the people who were lucky enough to install the previous version?

As far as my experience goes, i have seen people who were testers get the update for the app first than everyone else. But i am not so sure about how does it work exactly.

References: