Tuesday, January 22, 2013

Distributing iOS Apps for QA Testing outside Apple App Store

If you like many other Apple Mobile App Developers follow the standard Application Development Life Cycle, you will at some point want to distribute your App to your Quality Assurance Testers (QA Testers) to test and give you feedback, and you most definitely want to do this outside of the App Store. Also, depending on the location of your QA team, they may not physically be able to bring their iOS Device to you to update the App with the new version. So to summerize, here are our assumptions:
  • QA Team is remote and they cannot physically bring their device back to you for update
  • You have already registered their device as a developer device with Apple iOS Developer Portal
  • Your App has not yet submitted to the App Store
  • You do not want to Jail Break their device in order to do this. 
The following are the steps you will have to follow to create the installer (.ipa file) and make it available over the web:
  1. Open XCode and bring up your Workspace or Project, and get the latest version of your source code from whatever Source Control your team uses.
  2. Select your main Project Node in XCode File and Folder view. 
  3. Click on the "Organizer" button and open Organizer, then click "Refresh" to get the latest version of your provisioning profile from Apple (make sure "Provisioning Profile" library node is selected)
  4. Select the Provisioning Profile you are using for your App, then right click on the line item and choose "Reveal in Finder". 
  5. Copy this Provisioning Profile file to a temp folder for distribution. 
  6. Close Organizer and go back to XCode. 
  7. Select the main Project File and Folder Node in XCode, then go to the "Product" menu from the top XCode menu and select "Archive". Allow it a minute to compile and bring up the archive window. 
  8. Select the latest Archive from the "Organizer-Archives" list, then click on the "Distribution" button. If you don't see an Archive there, go ahead and compile and create one. 
  9. Select the "Save for Enterprise or Ad-Hoc Deployment" option, then click "Next". 
  10. Select a Code Signing Identity, then click "Next". 
  11. Select a file system location for the IPA file (Same location where you saved the provisioning profile to), then click "Save". 
  12. Upload the two files (provisioning profile and ".ipa" file) to a web server or a file sharing service (for example box.com or Google Drive, or other) as a single ".zip" file, and email the link to the zip file to your QA Testers. 
The following are the steps your QA Tester has to take to install the above distribution build on their iOS Device:

Mac OSX:
  1.  Plug your iOS Device into your Mac or PC, and allow it to fully sync. 
  2. Download the ".zip" file containing the provisioning profile file and ".ipa" file, and extract it on your local machine into a temp folder.
  3. Select the "Apps" section in your iTunes for the iOS Device in Question, then drag the provisioning profile file into it. This will install the Provisioning Profile on your Device through iTunes. If you are prompted that the profile exists already, go ahead and replace it with the new one you just dragged in. 
  4. Drag and drop the ".ipa" file into iTunes Apps Section. This will give you an Install button to Install the App on your iOS Device.
  5. Go ahead and Click on the "Install" button. This will install the App on your iOS Device. 
Windows PC:
  1. Download and install the iPhone Configuration Utility from http://support.apple.com/kb/DL1466
  2. Run the iPhone Configuration Utility from the Start Menu. 
  3. Plug in your iOS Device to your Windows PC using USB. A new icon with your Device's Name appears under "Devices" in the left menu. 
  4. Select your device under Devices, then click on the "Add" icon from the top left menu list, and choose "Mobile Provision" for the "File of Type" drop down, then navigate to and select your downloaded provisioning profile and click on Open. If asked if you wish to replace the existing provisioning profile, select "Yes". 
  5. Select your device under Devices once more, then click on the "Applications" tab. Again click on the "Add" icon from the top menu, but this time choose "Mobile Application (.ipa)" for "Files of Type:". Navigate and select your ".ipa" file, then click on the "Open" button. If prompted to replace existing version, click on "Yes".
  6. On the same Applications tab, scroll down and find your Application, then click on the "Install" button to install it on your device.
That's it, you have now distributed the latest version of your App for Testing. Enjoy, and feel free to post comments or feedback if I missed any steps.

Thanks,
Pete Soheil
DigiOz Multimedia, Inc
www.digioz.com




Monday, December 10, 2012

How to Setup Android Development Environment on Windows

The following is a step by step guide on how to setup the new Android Developer Tools Bundle released recently, which contains a pre-configured version of Eclipse IDE with built-in ADT (Android Developer Tools) to streamline your Android App Development, for those of you who don’t have the Android Development Environment Setup.



Please take the following steps:

1.   Go to the Following URL and download adt-bundle-windows-x86_64.zip: http://developer.android.com/sdk/index.html#win-bundle
2.       Extract it in a location on your machine (preferably on C:\Android\ or a directory directly on the root).
3.       Navigate into the /eclipse directory and run “eclipse.exe” executable.
4.       When prompted with a security prompt, click “Run” and uncheck “Always ask before opening this file”.



5. When asked for the Workspace path, choose the default and check the “Use this as the default and do not ask again” checkbox:


6.       Go to File > New > Android Application Project to create a test Application: 



7.       Enter “HelloWorld” as the Application Name and accept all the default Minimum Required SDK, Target SDK, Compile With and Theme values:

 
8.       Click “Next” on the next 3 screen, followed by “Finish”. The application will download a few packages onto your machine. Allow it a few minutes to complete and initiate your Project (this only happens the first time you create a project)
9.       Close the Android IDE Welcome screen. You should now see the following:


10.   Click on the “Android Virtual Device Manager” icon in the top Menu Bar. This pops open a new window.
11.   Click on the “New” button to create a new Virtual Android Device (Emulator).
12.   On the “Create new Android Device (AVD)” screen, enter a name for the “AVD Name” field, choose a Device type (example “3.2” QVGA (ADP2) (320 x 480: mdpi), then choose a “Target” (example Android 4.2 – API Level 17). Lastly, enter a size for the SD Card field (example 768 MB) and hit “OK”.  Please note that different virtual devices require different SD Card sizes, so it may take some trial and error to determine the correct size for your virtual device.

 
13.   Close out of the Device Manager Screen, which should now show your new virtual device:

 
14.   Right-Click on the “HelloWorld” root folder, go to Run As > 1 Android Application to run your Application: 



15.   Give the emulator a minute to load. Once it is loaded, you should see a screen similar to the following:


Want to see a video of the whole thing? Take a look at this video:



That’s it! You are now ready to begin coding. Feel free to email me comments or questions as needed.

Thanks,
Pete Soheil
DigiOz Multimedia, Inc.

P.S. You also have the option of Developing Android Apps in Mac OS X or even Linux if you so desire. The instructions for those platforms are slightly different. Feel free to post any questions regarding those here as well. 

Tuesday, October 30, 2012

A Simple Data Grid for ASP.NET MVC 3 and 4 - Part 1

One of the most useful and often overlooked features of ASP.NET MVC 3 and 4 is the ability to create and use Simple Data Grids. Unlike prior versions of ASP.NET MVC which did not have built in support for Data Grids, the latter allows you to fairly quickly create a Grid wich includes Sorting of Columns as Well as Paging.

Here is a short example of how to do that. Create an MVC 3 or 4 Web Application Project. First let's create a Model called "Person" for our Data, which will hold the data for us:



 In the Home Controller (HomeController.cs) of it under the Index Action Method, enter the following to generate some fake data for us and pass it to the view (of course one could query the database to do the same here):




Last but not least, on the Home View (Index.cshtml), add the following code:



Once you put it all together, you will get a simple Grid that looks like the following:



































Of course there is a lot more you can do with the Grid, but this is definitely a great start! Feel free to download the Source Code of the above Test Project below (Visual Studio 2012 Solution):

Download: GridTest1.zip

Want to see the whole thing in a video? Take a look at this clip:



Pete Soheil
DigiOz Multimedia, Inc.
www.digioz.com


Tuesday, October 16, 2012

ASP.NET MVC Forum Software

With the ASP.NET MVC Platform becoming more and more popular, there has been an increase in the need for Developers to find Forum Software that are also in MVC and are open source or free, in order to integrate it with their Web Applications. Let's however keep in mind that one can also install and use non MVC Forums and even PHP based Forums such as PHPBB or vBulletin (assuming that you have PHP installed on your Web Server) and they work fine, even though a full integration may not be possible in those cases.

While searching for a good list of ASP.NET MVC Forums online I noticed there isn't one, so I figured I start a list here and keep adding to it as time goes by both for myself and others looking for the same thing.

Here is a list of functional and production worth ASP.NET MVC Forums:


  • Open Forum - This one is a very basic Forum that is a plugable module for ASP.NET MVC Applications. It assumes that you have started your Web Application with the default Authentication that comes with the Internet Template, so there are some limitations to it. 
  • MesoBoard - Open Source ASP.NET MVC 3 C# and Entity Framework based Forum that is currently in Beta that is designed as a stand alone application which can be modified into your application using the standard MVC pattern. This one is a lot more complete and has most of the features a decent Bulletin Board software should have. 
  • AzureBrite - The Azurebrite system is a CMS system written in ASP.NET MVC 4, CSS 3, HTML 5 and JavaScript, which among other things has a Forum Module. The forum module is currently extremely basic, but it would be interesting to see how it evolves over time. Other modules provided on this system include Blog, HelpDesk, Comments, Gallery, Ecommerce, Maps, Contact, Booking and Video. 
  • CoolForum - A Forum built on ASP.NET MVC which promises to provide Web 2.0 features, Unit Testing and ORM Framework such as NHibernet and LINQ to SQL. The project hasn't seen a whole lot of activity as of late but it is Open Source so the Source Code can be downloaded and modified to fit your need. 
  • MVC Forum - This one is a simple yet complete Forum built using a provider model, which let's you easily exchange any parts of it you don't like. It includes PHPBB styled themes which you can further extend by creating new themes for it yourself. The project is currently in Beta, and the source code can be viewed on CodePlex HERE
  • MVC Forum (2) - Another MVC Forum, which is different then the previously listed MVC Forum.  It has an easy to customize code base with a full theme engine, pluggable architecture and a Management Dashboard.
  • NearForums - An Open Source SEO friendly ASP.NET MVC Forum Engine, which runs on both IIS and Apache Servers interestingly enough! This one is again a very simple forum with not a whole lot of features, but looks promising. It is currently in a Stable release, and the source code is on CodePlex HERE.
  • POPForums - An ASP.NET MVC Forum which is a very Simple Open Source Forum currently a single man effort by the author of it Jeff Jones (who apparently prefers to be the only one working on it). It is certainly a good start but I wouldn't expect rapid updates to the project any time soon because it is short staffed. 
  • JitBit Forum - An ASP.NET MVC Forum Software built with the Developer in mind, which easily integrates into your existing project. Again this is an extremely basic Forum which requires a lot of custom configuration and manual creation of the database, so you do have to be a programmer to use this one. The source code can be downloaded HERE.
  • SubForum - This Forum is an ASP.NET MVC and AJAX based Forum which is combined with a Q&A Site, Blog, Wiki and ScreenCast, and is essentially a ready to launch website. 
And here are a few more that are mostly in Alpha most of which seem to be abandoned at this point:
  • mvcBB - An ASP.NET MVC Port of a popular Bulletin Board (BB) Forum Engine. This project is currently in Alpha development stage and is not yet usable by anyone, but I sure like what the creator of it Kevin Ortman promised back in 2010 (still no progress though 2 years later).
  • Infancy - A Forum Application developed in ASP.NET MVC. This project is in Beta and does not yet have a release, but the source code is available for general use. 
  • ForumMVC - Another ASP.NET MVC Forum, again very simple and basic features. It is currently in Stable development stage and available for download. 
  • GNSystem - A simple yet not so elegant Web Application which includes a Forum System as well as a CMS and Blog System. It uses MVC 4 and C#. There is currently no official release but the source code is available for download. 
  • NetXForum - An ASP.NET MVC AJAX Forum, which comes with a Theme Changer with jQuery UI Theme, AJAX page loading, Drag and Drop Widgets and AJAX Search. The project is currently in Alpha, but available for download and use.
  • NexForum - A lightweight and customizable ASP.NET MVC 3 Forum, which is currently in Alpha. There are no downloads available for this Forum but the source code can be downloaded and used. 
  • MyForums - A multi forum software package developed in ASP.NET MVC. It is currently in Alpha but the source code is available for download and use. 
  • mForum - A full featured ASP.NET MVC 2 Forum coded in C# and targetting .NET 4.0 (at least it will be at some point). The project is again in Alpha, but the source code is available for download and use. 
If I missed any of them please post a comment below and let me know, and I will be happy to add it to the list. 

Going through the list above, it becomes very obvious just how far behind PHP technology Microsoft ASP.NET Technology in general when it comes to Forum Software (both Free/Open Source and for Pay). It would make a lot more sense for the authors of the various forum software above to put their resources together and come up with 1 full featured, production worth Forum software that comes even close to the same level of functionality as vBulletin or PHPBB. Until then, the above list is the best we can do I suppose!

Thanks,
Pete Soheil

Thursday, August 9, 2012

MacBook Air - What's the big power cord for?

This is a question that is usually asked by people who are new to MacBook Air or Macintosh in general. When you buy a new MacBook Air it comes with two power cords, one that looks like this:


And there is also a bigger power cord that looks like this:


However when you look around the MacBook Air itself, you can't find a plug that fits the second power cord:


So what gives? Why did they include the big power cord you may ask yourself! It makes no sense! Here is what the big power cord is meant to be used for. On the first smaller power adapter, slide off the edge of the adapter itself like so:


You don't have to worry about breaking it, as long as you slide it horizontally and yes you do have to apply some force. With the corner piece completely off, you can now slide in the end of the second / bigger power cord like so:


That's it! Now what exactly does that get you, you may ask. Here is what you get:


A much longer power cord that is also a lot easier to plug into outlets where space is limited! So essentially you can think of it as an extension cord with a smaller foot print.

A lot of hard core Mac users may look at this post and think this should be common sense, but you will be surprised how many people at work and elsewhere at libraries and coffee shops have asked me this very question. From now on when they ask me this question I will be referring them to this blog post. Feel free to do the same if you are a Mac Pro.

Enjoy!

Pete Soheil
DigiOz Multimedia, Inc
www.digioz.com

Thursday, June 14, 2012

Install LAMP on most Linux Distros the easy way

For those of you who don't know what LAMP is, it stands for Linux, Apache, MySQL and PHP, which are a must have these days if you intend on running a Linux Server of any flavor. There are many ways to install the above Software, the most painful of them all is installing them one by one starting with Apache, then configure Apache to work with PHP by editing some options in the Apache Configuration File, followed by enabling PHP to connect to MySQL which is essentially the manual way of setting up your Web Server. The process itself however is anything but common sense and there are a lot of things one can do wrong while attempting the manual setup.

A much easier way to do the same is by using YUM (stands for Yellowdog Updater, Modified) is an open-source command-line package-management utility for RPM-compatible Linux operating systems released under the GNU General Public License. It's job is to basically make installing of Software on Linux easier for us, and it does a very good job of that. Please note that this will work on all RHEL Redhat based Linux Distros:

Follow the instructions below to install LAMP using YUM.

1. Connect to your Server either physically or using SSH, and bring up a Terminal Window.

2. Run the following command to update the YUM Database with the latest versions of Software:

yum update

Note that if you don't have YUM installed by default you will have to run this command to install YUM first:

sudo apt-get install yum

3. Once that's done, run the following command to install LAMP:

yum install httpd mysql mysql-server php php-devel php-mysql

4. Start MySQL by running the following command:

systemctl start mysqld.service /usr/bin/mysql_secure_installation

Press enter when you are asked for password, then set a root password for MySQL.

5. Run this command to make Apache start on system load:

systemctl start httpd.service
systemctl enable httpd.service

6. Run this command to make sure MySQL always runs on system load:

systemctl enable mysqld.service

7. Enter an exception into your Server Firewall by running this command:

/usr/bin/system-config-firewall

The firewall wizard is pretty straight forward, but you can find some screenshots on how to work the Firewall Wizard HERE. At the very least, you want to enable access for the following Services:

  • FTP
  • IMAP over SSL
  • Mail (SMTP
  • POP-3 over SSL
  • Secure WWW (HTTPS)
  • SSH
  • WWW (HTTP)

If you are on Ubuntu or LinuxMint or other Debian Distros it's even easier, but there is no YUM to use. Instead you will have to use "apt-get". The Advanced Packaging Tool, or APT, is a free user interface that works with core libraries to handle the installation and removal of software on the Debian GNU/Linux distribution and its variants. Take the following steps instead:

1. Install and run tasksel:

sudo apt-get install tasksel
sudo tasksel

2. You will be prompted with a software selection wizard. Select "LAMP Server" and hit Ok to install.

3. When prompted for MySQL password, enter a password for it and hit "OK".

4. Restart Apache to finish:

sudo /etc/init.d/apache2 restart

5. Configure your firewall as before.

That's all it takes! No manual configuration, no back and forth testing the integration of Apache, MySQL and PHP, it configures it all. Enjoy!

Pete Soheil
DigiOz Multimedia, Inc.
www.digioz.com



Wednesday, May 30, 2012

Google+ iPhone App keeps Crashing

It started about a week ago, with no apparent reason, since I haven't received an update for my Google+ Mobile App for a few weeks now. Yet the App keeps crashing as soon as it lands on the main page of it. I tried killing the process by double pushing the iPhone Home button, selecting and holding the Google+ icon until a red circular stop sign showed up at the top right corner of the icon, then pressed it to kill the process for the Google+ App. That didn't help.

The next thing I tried was to power down the iPhone, leave it off for a minute or two, then started it back up and tried to run the Google+ App again yet again with no luck! Confused and annoyed, I tried and pushed on the edit button on the home page (before the Application had a chance to crash) and to my surprise not only did the Google+ App crash again, but this time it's crash launched the Facebook App immediately after without me selecting or running it! Are these two Apps competing for the same resources, and is that what is causing the Google+ App to crash? Or is Facebook trying to sabotage the Google+ App?

It's anyone's guess really, but if you have any suggestions post your comment here before I lose my mind, uninstall both Apps and say goodbye to social media forever!

Pete Soheil
DigiOz Multimedia, Inc.
www.digioz.com
There was an error in this gadget