Whether you are a developer already knowledgable in programming languages, or a tech enthusiast looking to broaden your understanding of coding, Punchkick has put together a quick resource for everyone interested in the top five languages used for programming mobile native and web applications. For those of us that don’t speak geek, we’ve included a glossary of some commonly used terms.
1. Java: Java is the “default” and recommended language for Android development. It’s an object-oriented* language very similar in style and syntax to C/C++, making it easy to learn when coming from those languages. A convenient feature that Java uses is automatic garbage collection, which means programmers don’t have to manually deallocate memory and makes development easier. Also, Java code is “write once, run anywhere”, so code written in Java can be run on any platform that has a supported JVM (Java Virtual Machine). This is achieved by compiling Java code into “bytecode” that gets run on the JVM regardless of the JVM’s underlying platform (Windows, Mac, Linux, Unix, etc).
Android runs a different type of virtual machine called Dalvik, which is optimized for embedded mobile devices. Dalvik is not a JVM, and it won’t run standard Java bytecode. Rather, Android code must be further converted from standard Java bytecode into Dalvik compatible .dex files. Android’s SDK* includes a tool called “dx” that performs this conversion.
2. Objective-C: Objective-C is the “default” and recommended language for iOS and, like Java, is object-oriented. There are a variety of defining features in Objective-C. Categories, for example, allow the adding of new methods to existing classes provided by Apple. Automatic Reference Counting (ARC) memory management is handled by calls inserted by the compiler as opposed to having the overhead of garbage collection. Objective-C is known for long and expressive names for methods and variables; this is called expressive syntax and allows for clearer code. Strict superset of C means that any code that can be compiled in C, can also be compiled in Objective-C, which provides great flexibility for leveraging existing libraries*.
3. C#: C# is the “default” and recommended language for Windows Phone 7/8/Surface and is a completely Object-Oriented language. If coming from a background in classical languages (C, C99), it’s very easy to pick up this language, compared to Java or Objective-C. In C#, a deep understanding of the language is not necessary in order to prototype something basic that is both functional and appealing. This language has a very strong community behind it, so information and code snippets are readily available for Windows Phone 7/8/Surface platforms. There’s also a large open source* community behind the language. C# has been around for a long time and gets a lot of TLC from Microsoft, who cares and listens to it’s developer community.
Visual Studio and Blend are excellent tools for developing and designing mobile apps. With no experience with VS, one can jump right in and start creating something. Unlike Xcode, Visual Studio has an actual emulator* rather than a simulator* for testing and running the applications (through HyperV), so one can be fairly confident that what is seen in the emulator is what is going to be experienced on actual hardware.
An interesting aspect of PHP is how far it’s come in the last few years. New language features are constantly being added, making it a more fun, interesting, and efficient language to develop in. Additionally, the larger community of PHP developers, particularly around Zend Framework and the Symfony framework, provide a true wealth of information and knowledge on what can be done with PHP today.
*Glossary of terms:
Object-Oriented Programming: Refers to a method of grouping similar functionality and using those objects in an objective way, rather than working with procedural code (one line of code after another with no grouping). By using object-oriented programming, we can group data and data access methods together easily so, if we want to use them or expand upon them, we can find them in the same spot, rather than all over the place.
SDK: A Software Development Kit is a collection of tools that developers use to help them work with a certain language, platform, or device. Examples of this would be XCode and Visual Studio. Generally, SDK’s have a built in editor for editing code and connections to work with simulators/emulators/
Library: A library is a useful piece of code that operates independently of the applications it can be used in. It is a smaller component that can be used across multiple applications with no adaptation. Examples would be jQuery, ExtJS, and ASIHTTPRequest. You use this code in your application, but you never modify it.
Open Source: An open source application is an application whose source code is publicly available for reviewing, distribution, and editing – depending upon the license. It’s a way of giving back to the community, allowing others to contribute to the project, make it better, find issues, and make the application more secure.
Emulator: An emulator is a piece of software that emulates the functionality of another device. Running something on a emulator is like running something on an actual device (such as an Windows Phone). What you see on the emulator is what you’re going to see on the actual hardware device. Visual Studio uses an emulator for debugging.
Simulator: A simulator is a piece of software that simulates the functionality of another device. It’s similar to an emulator, but different in that you aren’t emulating the hardware the software is running on as well. A simulator will give you a similar experience as one you’d see on a hardware device, but there might be some major differences (running on a different CPU than the hardware would, for example). XCode uses a simulator for debugging.
API: An Application Programming Interface allows developers to interface with another application to get information that the API service provides. Google Maps is a great example of this. They offer an API that allows developers to get information about maps and directions, so instead of having to solve that problem themselves, they can ask Google Maps to solve it. An API provides information in an easily manipulable way which a developer can use to interface with their application. The difference between and API and a Library is that a library is an internal tool which the developer uses and includes in his code, whereas an API is an external tool the developer uses to get information. Google Maps, Bing Maps, WordNik, and Weather.com all provide APIs.
Functional Programming: Functional programming is a programming paradigm that treats computation as the evaluation of math functions and avoids states and changing data. Functional programming emphasizes the use of functions to solve problems (these functions don’t change). Think lamda calculus, if you’ve ever taken it. If not, think Fibonacci sequence.
This year Marriott won the prestigious ERE Recruiting Excellence Award for best employer brand, which speaks to its continued focus on employees.
Check out this recent article that mentions the mobile recruitment site that Marriott partnered with Punchkick to develop: http://www.ere.net/2012/12/13/marriotts-careers-pages-get-makeover-with-where-i-belong-theme/
With the ever-growing number of daily mobile users, companies are looking to attract potential talent with mobile career sites. Microsoft has proven itself as an industry leader in mobile recruiting with the launch of m.microsoft-careers.com in March, a site it teamed up with Punchkick Interactive to execute. Microsoft’s vision was to provide a compelling and highly-engaging way of discovering jobs at blazing fast speed. Both companies are excited as the metrics show dramatic increases in KPIs across the board.
Japanese electronics-giant Sharp recently unveiled an LCD touchscreen that displays 3D images without requiring special glasses. Sharp identified mobile phones as a potential outlet for this technology, and this week announced the first 3D camera to be used in mobile devices.
In a press release, Sharp explained how its 3D technology works:
“3D images are composed of two views taken using two cameras that simultaneously capture separate images for the right and left eyes. Consequently, a 3D camera requires peripheral circuitry to apply image processing to the two images, for example, to adjust color or to correct positioning between the images from the two cameras.”
The glasses used to view 3D images have lenses with colored filters. This creates the illusion of something popping off the screen known as parallax. The left and right eyes see separate images because of the apparent displacement of an object as seen from two different points.
The reason 3D technology did not successfully gain widespread use in the 1970s was because technologists failed to create a 3D user experience without the need for funky glasses. In order for parallax to work without glasses on mobile, viewers will hold a mobile device 12 inches (30 centimeters) in front of their face – approximately the same distance a mobile phone is typically held.
Sharp plans to ship the cameras as soon as July, and will begin mass-producing the product this year. Could we be on the verge of capturing and presenting eye-catching 3D images and video with our mobile phones? It’s an exciting prospect.
How will 3D content change our mobile experience?
Three-dimensional imaging technologies are changing the way we experience media, first in movie theaters, now in our homes, and soon in our hands. If 3D cameras become standard in our mobile devices, a wave of new content would contribute to the refinement of the technology.
Here are five ways we’d like to see 3D cameras and imaging for mobile applications:
1. Games. (Did we hear someone say Nintendo 3DS?)
2. Data charts and interactive surveys. Information architecture in 3D would be amazing.
3. Product previews for smaller items like jewelry could change the way we pop the question.
4. 3D profile pictures and video chat.
5. Navigation and maps with pop-up landmarks to guide viewers along.
What are some of your ideas for 3D imaging in mobile applications? Tell us what you’re thinking in the comments section.
College@Home created a list of 50 useful iPhone tips for librarians and researchers, and it actually brought up a few points directly related to mobile marketing…
2. Creating a texting service for patron questions. Giving patrons the option of texting in their questions to the library can make it easy for those who prefer to avoid telephone conversations the ability to get quick and easy answers to simple questions, and if librarians within your library are using iPhones they can respond to questions in between checking in or shelving materials and other tasks.
5. Check how your site looks on an iPhone. Many sites don’t quite translate well to mobile devices like the iPhone. Check how your library’s webpage looks by using an online tool like iPhoney or by checking it yourself on an iPhone.
7. Optimize your site for mobile devices. If you’ve checked out how your site looks on an iPhone and the result is not so great, consider creating a special page for mobile users to access your site. Many libraries are already doing so to maximize the usability of their webpages by patrons.
18. Track requests. You can use your iPhone as an easy way to alert patrons that their requests have arrived whether by phone, email or text and you can record and keep track of these requests as well.
23. Create content that’s easy to browse over an iPhone. If you’ve decided to develop a version of your site that’s more easily compatible with mobile phones, consider scaling it down the the basics. Simple search tools and information will be easiest to browse on the go.