Tag Archives: interaction

ios development glossary

IOS Glossary: Architecture, Patterns, Xcode.

As soon as you know the basics, you set the foundation for growth. It works the same way for any job and there is no any secret that many significant innovations are still grounded on diverse knowledge boosting potential and force of creativity. So, today let’s do our homework on the basics and add one more article to the set of professional glossary. Earlier we have already published the Glossary posts with key terms for the topics of UI/UX design and web design as well as business terms and abbreviations. This time the perspective will get changed a bit, featuring first set of terms in the theme of iOS development. Let’s get started briefly reviewing the basic notions common for the sphere of iOS development.

 

iOS

 

Basically, widely known iOS is the well-established abbreviation taking its roots from the phrase «iPhone Operating System» which was created originally for the system of mobile devices produced by Apple such as iPhone, iPad and iPodTouch and now also AppleTV. 

 

User interfaces created for iOS are made on the basis of direct manipulation involving multi-touch gestures. Interface control elements present variety of functions and forms including buttons, sliders, and switches. Gestures taking place in the process of interaction with such type of interface are also various, for instance, swipe, tap, pinch, and reverse pinch; what is more, they all have specific definitions in the context of the iOS operating system. Some iOS applications even use internal accelerometers which can react to the cases of shaking or rotating the device in three dimensions. Another typical feature is portrait and landscape mode switching.

 

From the standpoint of development, Apple gives steady preference to simple and durable things, and this concept is applied to their products, applications, tools and frameworks. It is expected that when iOS developer builds an app for iPhone, it will run on any other device with the iOS. This aspect of iOS development can save large amount of time for programmers as writing code, let’s say, for iPhone, developer uses the same programming language for all Apple’s computing devices. Said otherwise, application created for iPhone can later be even integrated into Mac.

 

In both UI/UX design and development for iOS, specialists making screens and writing code, apply their flight of creativity in terms of definite rules and guidelines to keep. The apps which don’t keep those guidelines risk failing to submit their app to Apple ecosystem of devices. Working over the digital products intended to be used in iOS, professionals need to know iOS Human Interface Guidelines and always keep and eye on updates and fresh recommendations. The set of guidelines for designers states: «As an app designer, you have the opportunity to deliver an extraordinary product that rises to the top of the App Store charts. To do so, you’ll need to meet high expectations for quality and functionality». Actually, the same position works the same way for developers who are offered samples, guidelines and support to find the optimal solutions for user-friendly and effective digital products.

 

ios-developers-tubik-studio

 

iOS architecture

 

As it was mentioned before, iOS allows users to interact with their devices and products using gestures such as swiping, tapping and pinching. These finger actions are typically performed on touch screen displays, which provide fast response and accept inputs from multiple fingers.

 

The iOS architecture can be pictured as four abstraction layers that define it:

 

Cocoa Touch. The layer containing variety of frameworks which define the appearance of the app. It also provides the basic app infrastructure and support for main technologies such as multitasking, touch-based input, push notifications, and many high-level system services.

 
Media. The layer with graphics, audio, and video technologies which developers use to implement multimedia experiences in the apps. The technologies in this layer make enable building apps that look and sound excellent.

 

Core Services. The layer that consists of essential system services for apps. Main services are the Core Foundation and Foundation frameworks, which define the basic types that all apps use. It also contains individual technologies to support features such as location, iCloud, social media, networking, etc.

 

Core OS. The layer including services such as the security, local authentication and core Bluetooth frameworks.

 

Apple recommends developers to write code to the highest applicable layer whenever possible, and only use the lower-level frameworks for features not exposed at higher levels.

 

Architecture design patterns

 

In software development, architecture design pattern is the matter of structure. It is not a finished architecture that can be transformed directly into code. Patterns are similar to the case of reliable practices that the developer can use to solve common problems building an application or system.

 

In general terms, architecture pattern in case of development could be described as reusable solution that could be repetitively applied for the issues that frequently rise within a particular context of development and engineering interactions. This sort of patterns take into account various limitations and restrictions including the problems of hardware performance, availability, environment of use and even particular business goals.

 

Among main architecture design patterns we could mention:

  • MVC (Model–view–controller)
  • MVP (Model–view–presenter)
  • MVVM (Model–view–view-model)
  • VIPER (View-interactor-presenter-entity-routing)

 

First three types of architecture design patterns assume putting the entities of the app into one of 3 categories:

 
Models – give the controller/ presenter/ view-model the data to populate view.
 
Views – display content and are populated by the controller/ presenter/ view-model. Each screen of the app is a ‘view’ which includes buttons, text, menus, fields and etc.
 
Controllers/ Presenters/ View-models – control behavior of the app. Apps are based on event-driven programming, controllers/ presenters/ view-models receive, process and return events.

 

Tubik Studio iOS development

 

To see how it works in practice, let’s take MVC pattern and describe it a bit more in detail. The model-view-controller (MVC) is an architecture design pattern that breaks code down into three parts: user interfaces (views), data (model), and the software that communicates between the two (controller). The building blocks of apps are objects — arrays of code organized with MVC pattern. Each screen of the app is a view: the data model controls the content it displays, and the controller manages communication between the view and the model. The model-view-controller is just one of the architecture design patterns developers use while building the app, still it is popular in development.

 

Xcode

 

Xcode is Apple’s integrated development environment (IDE) and it is the main tool for building iOS apps. iOS developers can work applying either Objective-C or Swift in fact using only Xcode. This software only runs on Macs and there are no official ways to launch it on a Windows or Linux PC.

 

Xcode has tons of features for iOS development, among which:

 

Interface Builder. It allows designing and testing user interface without writing a code. Interface Builder helps to prototype and then connect interface to the source within the Xcode editor.
 
Source Editor. It is a professional editor with code completion, code folding, syntax highlighting, and messages that display warning, errors, and other context-sensitive information.
 
Continuous Integration. It is a feature of OS X Server controlling server-side bots that continuously build, analyze, test, and even archive Xcode projects.
 
XCTest Framework. It assists to build unit tests that check iPhone, iPad, Apple Watch, Apple TV and Mac apps performance.
 
iOS Simulator. It allows prototyping and testing app during the development process. This testing tool simulates iOS, watchOS, and tvOS devices before testing the app on an actual device.

 

iOS programming languages

 

Two fundamental programming languages for iOS development are Objective-C and Swift. The benefits and drawbacks of each language were considered in our earlier post.

 

At the moment Objective-C is commonly described as the general-purpose, object-oriented programming language adding Smalltalk-style messaging to the C programming language. Before Swift came into play, Objective-C had been the main programming language used by developers for OS X and iOS operating systems, and their APIs. Swift, introduced at Apple’s 2014 WWDC, brought its own dose of revolution. In general description, Swift is a general-purpose, multi-paradigm, compiled programming language broadening the previous scope of operating systems as it was developed for iOS, OS X, watchOS, tvOS, and Linux. Swift was designed to enable work with Apple’s Cocoa and Cocoa Touch frameworks as well as the large body of Objective-C code already written for Apple products. 

 

Initially Swift was intended to be more resilient and safer than Objective-C, and also more concise and developer-friendly. It was built with the LLVM compiler framework including in Xcode 6 and using the Objective-C runtime library that enables C, Objective-C, C++ and Swift code to run within one program.  Therefore, it enhances broadening professional horizons for developers making their work more efficient. That was the milestone when developers started their discussion of what is better, tradition or innovation.

 

Since 2014, Swift language has been used by Xcode for coding more often than Objective-C. Objective-C is the initial programming language for building OS X and iOS software and in perspective of all the apps coded for iOS, it presents a superset of the C-programming language and provides object-oriented programming and dynamic runtime. Nowadays, Objective-C is a good fit for early iPhone and it is also effectively applicable for maintaining and updating the apps initially created in it. Swift in its turn is newer  and more flexible programming language for Apple devices that has the best features of C and Objective-C, without the constraints of C compatibility. It keeps step with modern hardware being faster in actual process of coding as well as shorter, more secure and easy-to-use. 

 

tubik ios development

 

Read more about the topic in our previous article 

 

Anyway, the choice of the programming language, framework, method, and tool for creating iOS apps should be based on the intention to provide the efficient product to both the client and the final user. 

 

This set of our glossary is ready for those who need it and we are going to continue this practice before long. Don’t miss the new sets. If there are any specific terms you would like to see explained, described and illustrated, feel free to contact via direct message in our Facebook page or Twitter as well as our Quora representative. New definitions are coming soon!


Welcome to read the articles by Tubik Studio on web and app development

Welcome to read us on Quora

Design is a job quotes

Design Is a Job. 30 Honest Quotes by Mike Monteiro

For plenty of people design is a synonym of art. And for some creative guys who do not make their living or their business that way, it perhaps is. However, for those who decide on making design their job solving problems and pains, it obtains other perspective and requires different approach. Sometimes it becomes a great discovery what a goal-centered activity design is and how many problems can be solved with it, far more than just aesthetic satisfaction.  It is vitally important to understand that from the first steps on the path to avoid disappointment and achieve access.

 

In one of earlier articles with tips to beginners in app and web design our first advice based on practical experience was rather simple. The first and really crucial thing may sound quite primitive: you should make sure that you really want to make it your job. There are lots of people who, being great artists, deeply creative and inspired, get broken by the necessity to work systematically with strict deadlines and loads of requirements and wishes (sometimes illogical or not-too-professional) from the customers. Clear up the nature of your job: designer is not a pure artist free of obligations and fully devoted to creativity. Nope. In different stages of your project, you’re also going to be a researcher, an analyst, a time-manager and so on and so forth. Bear in mind all those things from the very start of the way.

 

For those who have made this vital decision, today we would like to recommend a useful and helpful book «Design Is a Job» by witty expert Mike Monteiro, the co-founder of Mule Design. The book reveals all the stages of design job, including communication with clients, organization of the process, drawing contracts, working in teams of colleagues and so on and so forth. The author doesn’t try to make the profession look like magic: he is deeply and sometimes sharply honest about not only the benefits but also pitfalls. In the foreword to the book, Erik Spiekermann says: «Contrary to popular belief, designers are not artists. We employ artistic methods to visualize thinking and process, but, unlike artists, we work to solve a client’s problem, not present our own view of the world.» The ideas shared by Mike Monteiro are highly practical in supporting this thesis. It is not about design process inside only, it is more about the outer part of the design world, full of clients, requirements, goals, metrics, iterations, presentations and discussions.

 

Here we would like to share a new set of design quotes which we grabbed from this book for Tubik Studio Quotes Collection. This time it will be fully loaded with honest and informative thoughts by Mike Monteiro. Join in!

 

Design is a job quotes

 

A designer requires honest feedback and real criticism, and that’s not going to happen in a realm where colleagues or clients are worried about crushing the spirit of a magical being. The sparkly fog of affirmation gets in the way.

 

Clients will always ask you to make their logo bigger, prescribe solutions, and ask you to do things that will make you smack your forehead. You can roll your eyes at how much they don’t understand about design or you can roll up your sleeves and begin practicing your craft by helping them clarify what they need.

 

If you can stand in front of a client completely confident and explain why you are worth the amount you quoted, you should charge it.

 

The general rule is to involve as many people as possible in early discussions, and make that number as small as possible once you go into review cycles.

 

Anyone who hires you because they thought you could do the job and then doesn’t let you do it has lost respect for either you or the design process.

 

Whether you are helping to launch a new business from scratch, or making incremental changes to an existing product, or something in between, any design task you undertake must serve a goal. It’s your job to find out what those goals are.

 

quotes collection design tubik studio

 

Successful design balances convention—familiar forms, terms, and interactions—and novelty—new forms to engage and delight the users, in the hope they will stick around a bit longer and maybe buy their pants here instead of somewhere else. As long as you remember that those new forms must serve the goals of the business. Otherwise, they’re just novelty.

 

A good client will trust your process as long as they have transparency into it, can see results, and you’re willing to bend a little here and there. Without breaking.

 

A designer who does not present his or her own work is not a designer. Presenting the work, explaining the rationale, answering questions, and eliciting feedback are part of the design toolkit. If you sit at your desk while someone else presents work to the client, you don’t get to complain about the feedback. The failure was yours.

 

Clients are the lifeblood of a healthy business. They are the oxygen in your bloodstream that keeps everything going. No matter how good you are at what you do, without someone willing to pay you for that service you will have to close your doors.

 

tubikstudio design quotes

 

If you’re trying to decide between two design firms that seem equally talented, the one that came with a referral has a solid advantage. And that vetting goes both ways—a client who is well-socialized and has a good reputation in a large network is more likely to be a great client. In most cases, you’re going to be as skeptical of a client who hires a designer from an ad as they are of the designer who answered that ad.

 

…you should aim to be pleasant to work with, as everyone would rather work with someone pleasant than with an asshole. But no one wants to work with someone who’s faking it. Doing good work often requires a few hard conversations.

 

The biggest myth ever perpetuated in the design field is that good design sells itself. (The second is that Copperplate is a legitimate typeface.) Design can’t speak for itself any more than a tamale can take off its own husk. You’re presenting a solution to a business problem, and you’re presenting it as an advocate for the end users. The client needs to know that you’ve studied the problem, understood its complexities, and that you’re working from that understanding.

 

Ultimately, your job is to make the client feel confident in the design. Confidence is as much of a deliverable as anything you’re handing over in the project.

 

There’s a difference between being enjoyable to work with and being “nice.” Being nice means worrying about keeping up the appearance of harmony at the expense of being straightforward and fully engaged. Sometimes you need to tell a client they’re making the wrong call.

 

design quotes tubik studio

 

Of course, being the most pleasant person in the world won’t help your cause if the work isn’t good. But don’t make the mistake of thinking the quality of your work by itself will be a shining beacon that pulls clients near.

 

You can do a lot to show a client how valuable time is in how you comport yourself throughout the project. Run your meetings and work sessions efficiently. Come in prepared. Don’t run over. Don’t hang out. Don’t train clients to think you’ve got extra time on your hands.

 

At the risk of sounding like a broken record, stay in good communication with your clients at all times. They will accept your process as long as you are showing them results. Make sure to set their expectations correctly as to what is happening when.

 

Over the years the one constant that we’ve been able to rely on is that how a potential client behaves in the business development process is exactly how they will behave during the project. Trust your gut.

 

design quote tubik studio

 

Never work for free. Any work you take on for free will get pushed aside for paying work. That does neither you nor the client any favors. Neither of you will respect each other’s time. If the situation merits it, work at a discounted rate. But submit a budget showing the actual rate, with the discount applied. Let the client know the value of what they’re getting.

 

Not knowing the design language doesn’t make someone a bad client.

 

Only you know the value of your time. (Hint: it is greater than $0.) But the value of your work to a particular client depends on what the client has to gain from that work. And the client is not buying time from you. They are buying work. The value of that work is what you need to charge them for.

 

As we tell potential clients when they ask us what their site will look like: “Oh, we have no damn idea. But we know what the process is for finding out.”

 

But much like the best umbrella is the umbrella you have on you, the best process is always the one you’re having success with. Don’t fall for trendy processes. If the one you’re using works for you, go with it.

 

tubik studio design quotes

 

You’re not going to ask for permission to do things your way. You’re going to convince clients that your way works by showing them how you will use your process to meet their goals. And you’ll back this up by showing them how many times it’s worked in the past.

 

Throughout a project you may have to remind a client multiple times that they agreed to follow your process. And throughout a project you will have to convince a client that your process is actually on target to get them the results they need. There will be hand-holding. There will be tough love. But above all, you will have to stand your ground and stick to what you know works.

 

…just make it a habit never to speak ill of your clients. They’re paying your bills. And putting their livelihood in your hands. They’re good people.

 

Working with other (talented) designers makes you a better designer, and is essential to your professional development, especially early in your career. There’s simply no better way to learn your craft than to watch someone else practice it.

 

Not only can a designer change the world, a designer should. This is the best job in the world! Let’s do it right.

 

tubik studio design quote collection


Welcome to see the designs by Tubik Studio on Dribbble and Behance