Content by Category
.NET 1.x
.NET 2.0
.NET 3.0
.NET 3.5
.NET 4.0
.NET 4.5
.NET Assemblies
.NET Framework
.NET Getting Started
Accessibility
ADO.NET
Advertorials
Agile Development
AJAX
Amazon Web Services
Analysis Services
Android
Architecture
Arduino
ASP .NET Web API
ASP.NET
ASP.NET MVC
ASP.NET WebForms
Azure
B2B (Business Integration)
BDD
Big Data
Bing
BizTalk
Book Excerpts
Build and Deploy
Business Intelligence
C#
C++
ClickOnce
Cloud Computing
Code Contracts
CODE Framework Info - non Technical
CODE on the Road!
COM+
Community
Conferences
Continuous Integration
Crystal Reports
CSLA.NET
CSS
Data
Debugger
Design Patterns
Development Process
Display Technologies
Distributed Computing
Document Database
DotNetNuke
DSL
Dynamic Languages
Dynamic Programming
Editorials
Enterprise Services ("COM+")
Entity Framework
Events
Expression Blend
F#
Fox to Fox
Frameworks
Functional Programming
Git
Graphics
HTML 5
Internet Explorer 8.0
Interviews
IOS
iPhone
Iron Ruby
Java
Java Script
JavaScript
jQuery
JSON
Lightswitch
LINQ
Linux
LUA
Mac OS X
MDX
Messaging
Metro
Microsoft Application Blocks
Microsoft Business Rules Framework
Microsoft Dynamics
Microsoft Expression
Microsoft Office
Mobile Development
Mobile PC
Mono
MsBuild
MVVM
MySQL
Network
NHibernate
node.js
NOSQL
Nuget
Object Oriented Development
Objective C
Odata
OLAP
Open Source
Opinion
Opinions
Oracle
ORM
Other Languages
Parallel Programming
Patterns
PHP
Podcasts
Post Mortem
PowerPoint
Print/Output
Prism
Product News
Product Reviews
Project Management
Prolog
Python
Q&A
Rails
Rake
Razor
Reporting Services
REST
RIA Services
Ruby
Ruby on Rails
Scheme
Search
Security
Services
SharePoint
SignalR
Silverlight
SOA
Social Networks
Software & Law
Software Business
Source Control
Speech-Enabled Applications
SQL Server
SQL Server 2000
SQL Server 2005
SQL Server 2008
SQL Server 2012
SQL Server CE/AnyWhere/Mobile/Compact
SSIS
Subversion
Sync Framework
Tablet PC
TDD
Team System
Techniques
Testing and Quality Control
TFS
Tips
TypeScript
UI Design
UML
User Groups
VB Script
VB.NET
Version Control
VFP and .NET
VFP and SQL Server
Virtual Earth
Vista
Visual Basic
Visual Basic 6 (and older)
Visual FoxPro
Visual Studio .NET
Visual Studio 11
Visual Studio 2005
Visual Studio 2008
Visual Studio 2010
Visual Studio 2011
Visual Studio 2012
Visual Studio Tools for Office
VSX
WCF
Web Development (general)
Web Services
WebMatrix
WF
Whitepapers
Windows 7
Windows 8
Windows Azure
Windows Live
Windows Phone 7
Windows Phone SDK
Windows Server
Windows Vista
WinForms
WinRT
Workflow
WPF
XAML
Xiine Documentation
XML
XNA
XSLT



LearnNow


XAMALOT
 


SSWUG

Reader rating:
Click here to read 1 comment about this article.
Article source: CoDe (2012 Mar/Apr)


Article Pages:  1  2 - Next >


Post Mortem: Xiine for iOS

In the Sept/Oct 2011 issue of CODE Magazine, I wrote about Xiine for Android. Let me remind you that Xiine is an electronic reader application for CODE Magazine. It was originally written in C# using WPF and is based on SOA architecture. With this software, all subscribers (it’s free) can read CODE Magazine issues on a PC. You can download Xiine at http://www.xiine.com.

Xiine is popular for digital content. There are desktop, Web, WebOS, and of course, the Android edition, which is now being distributed by Android Market and Amazon Marketplace.

There was one platform missing, though: the iOS version. That's the reason we decided to write Xiine for iOS and share this new experience. Because CODE is a magazine, the same version should be supported on both the iPod Touch/iPhone and the iPad.

Xiine for iOS was CODE’s very first Apple project and we passed through some roadblocks.

We wanted the users to have a good UI experience, just like the Android version so we made a list of goals:

  • Authenticate Xiine users.
  • List available brands and respective issues.
  • Make clean and intuitive screens.
  • Display user information.
  • Enable reading articles.
  • List already read articles.
  • Zoom in and out on an article page.
  • Save a history of what has been read.
  • Use up minimal code-writing time.

What Went Right

Because we’d already done a lot of technological work, this project seemed fairly painless.

The Architecture

We took advantage of the existing architecture for the Android project.

The architecture is very simple (Figure 1):

Click for a larger version of this image.

Figure 1: The architecture for Xiine service is simple.

  1. Apple devices access the REST service at xiine.services.com, requesting a JSON object.
  2. The REST server responds to the device, which understands the JSON object and converts it into real information.

/

Creating a Similar User Interface and Re-using Code

The login screen on the Android version should be similar to the iOS version. Due to different resolutions, it's not possible to be exactly the same, but we could have the same simplicity and functionality: Enter the user name and password.

After the log in, the user can see the available brands (see Figure 2). The iOS version is much the same as the Android page and shows the title and description on the list.

Click for a larger version of this image.

Figure 2: These are available brands as viewed on the iPhone.

/

After the brand is chosen, a list of magazine issues with complete information is displayed when a magazine is clicked (Figure 3). It’s a little bit different on the iOS version, but not much.

Click for a larger version of this image.

Figure 3: This is a list of magazine issues on the iOS.

/

Like logging in and choosing a brand, there is minimal difference between the Android and iOS versions for choosing an article from the list.

There wasn’t much work to do to write the code for the interface because we could base the iOS on the Android code that already existed.

Because we already had the Android version, we didn't need to worry about layout and how the objects would fit in different screen resolutions. We already had the layout set and even though Objective-C was a brand new language for us, it was learnable.

"
Because we already had the Android version, we didn't need to worry about layout and how the objects would fit in different screen resolutions.
"

Just like when we built the Android version, the usage of the JSON library was one of the most important parts of the project, as all the information needed was available from a WCF service. Also, we had already made the changes needed for the Android version, so we didn't have to touch a single line of code!

&

By: Mr Milton Abe

Milton has been working in software development since 1999 when he started his first project at IPT-USP, Sao Paulo, Brazil.

He taught software development for three years at FASP University (Sao Paulo/Brazil) and was responsible for the first .NET project at Porto Seguro, the largest insurance company in Brazil, developing alarm and truck tracking systems.

Milton has worked at EPS Software, Houston, TX (www.eps-software.com) for four years, especially with MVVM, MVC and WCF architectures as well as Android development.

mabe@eps-software.com



Article Pages:  1  2 - Next Page: 'Easy Tools' >>

Page 1: Post Mortem: Xiine for iOS
Page 2: Easy Tools

How would you rate the quality of this article?
1 2 3 4 5
Poor      Outstanding

Tell us why you rated the content this way. (optional)

Average rating:
3.5 out of 5

2 people have rated this article.

Instantly Search Terabytes Of Text
“Lightning Fast”
– Redmond Mag
“Covers all data
sources” – eWeek
25+ fielded & full-text search options
dtSearch’s own document filters highlight hits in popular file types
Web Spider supports static & dynamic data
APIs for .NET, Java, C++, SQL, etc.
Win / Linux (64-bit & 32-bit)
www.dtSearch.com
 

      Sharepoint TechCon

 

SSWUG