Quantcast
Channel: Kodeco | High quality programming tutorials: iOS, Android, Swift, Kotlin, Unity, and more
Viewing all articles
Browse latest Browse all 4370

Tools for Running an iOS Consulting Studio

$
0
0
Get your organization on track with these tips and tools.

Get your organization on track with these tips and tools.

Management responsibilities are a sharp departure from the technical skills that make developers successful in the first place. However, growing into a larger organization doesn’t need to be overwhelming. Everything you need to organize and maintain a successful team is just a few mouse clicks away.

I’ve gathered a great list of tools and services that I’ve found essential while running Mac and iOS development companies for over a decade. Hopefully you’ll find one or more things in this list to help solve your own organization’s growing pains!

Full disclosure: My employer (MartianCraft) has an interest in Briefs, Resolve, Propane, and Slender. We often create tools that fill a need we have in day to day operations.

Design and Polish

To put it simply, design is critical. If you aren’t making beautiful software you won’t captivate your users, clients, coworkers or peers.

When you’re a one-person shop, it’s easy to manage the design phase by yourself. However, when you need to collaborate and share ideas with two, five, or dozens of stakeholders, the process becomes a tad more complicated.

Here are my picks for some of the best communication tools for your organization:

InVision

InVision is a free web app where you can post, solicit feedback on, and track changes to your designs.

Real-time sharing and presentation

Real-time sharing and presentation

In essence, it’s a bug tracker that supports images and other mockups in various file formats. Invision provides the ability to create a clickable map from your art assets that you can use to demo the flow through your app.

Clients will find the InVision site easy to use without much hand-holding, and they’ll undoubtedly appreciate the opportunity to be involved in the early stages of the design process.

LayerVault

LayerVault provides version control for your PSDs and other popular design formats. You can store an unlimited number of revisions online and sync them directly to your computer á la Dropbox to give you the seamless workflow you need.

Smart versioning for design files

Smart versioning for design files

LayerVault includes support for resolvable conversations tagged to a change as well as release notes on new updates. If you have more than one designer editing a PSD (and you know all too well the issues that can cause!), then LayerVault will be an invaluable tool in your arsenal.

Briefs

With Briefs you can professional quality prototypes from mockups and wireframes, share them with your team and easily deploy them to iOS and Android devices as in-hand demos.

kr-briefs

Briefs is great for rapid prototyping, and clients get the chance to to experience the interaction and flow of the app — even before development kicks off.

OmniGraffle

OmniGraffle is one of the best tools out there for quickly assembling wireframes. There are templates for iOS apps and icons, and you can add your own stencils to customize your designs.

Stencils Customisation

I know that there are a lot of other less-expensive and free solutions for wireframing, but OmniGraffle keeps returning to my workflow. As a general-purpose diagramming tool, OmniGraffle is also great for sketches, flow charts and illustrations. The free OmniPresence sync solution can also help you keep track of OmniGraffle documents across devices (Mac and iPad) and teammates.

Slender

Slender analyzes the image usage of iOS and Mac apps. Not only can it reduce the size of a finished app, but it can also point out other image and code issues that might result in blurry or incorrect user interfaces.

Slender

Slender’s value becomes apparent each time Apple introduces new resolutions and screen sizes to iOS devices.

xScope

If you need to quickly measure, compare, align, and inspect design elements in your apps, xScope is your tool.

xScope

It’s a breeze to compare your final product to the original design mockups, helping you make sure that your clients and end-users get exactly what they were promised.

Reveal App

Debugging and troubleshooting layout issues in your iOS apps can be a real pain. Reveal produces three-dimensional representations of every layer in your interface for you to inspect.

Reveal app

SparkInspector remains a slightly cheaper, but comparable, solution.

Communication

Old phone

Keep your communications technology up to date with your developer technology. Photo credit: hux

It’s become difficult to find talented people in local markets and the pool of available talent is shrinking every day. The solution? Create a virtualized company out of remote employees.

Remote companies are increasingly common in today’s business environment, and especially so in the mobile consulting world. Effective communication is what makes or breaks a company — doubly so for a remote company. You need to manage all aspects of communication in your organization with your employees, teams, managers, clients and especially your users.

Without established communications, your company won’t even have a chance to get off the ground. Fortunately, I’ve done a bit of digging for you and have found the tools below to be of great value to stay connected with everyone in your organization.

Adium

Every company needs a one-to-one communication tool to encourage dialogue outside of email. You can use Skype, AIM, Gtalk, Yahoo Messenger, Jabber or any of the other great chat platforms out there to let people communicate in real time.

Adium, an open source chat client, takes care of the headaches of cross-platform chat and works with most major chat platforms, with the exception of Skype. Say your team is standardized on AIM but your client prefers Gtalk – Adium supports both and lets you keep your communication in one app.

Facetime

A lot of things can get lost in “electronic translation”: emails, chats, and even phone calls don’t always convey the true intent of a message. If your company is working remotely, consider using video conferencing systems such as Facetime on a regular basis.

For large groups of people, GotoMeeting and Google Hangouts are useful tools for communicating via voice and video.

Campfire

Direct communication using chat platforms and Facetime is great, but it doesn’t simulate the typical office dynamic for distributed teams. 37Signals provides Campfire as a solution to that issue, providing a “lobby” and “room” metaphor to your chat rooms. You can chat, share files, and there’s even a conference call dial-in option.

Propane is a companion app to Campfire that provides an desktop native solution over the default website. Flint also provides Mac and iOS clients for Campfire.

Reflector

Have you ever tried to gather a group of people around your iPhone in a boardroom to demo a feature or a new app? It’s pretty much impossible, and it looks terribly unprofessional. Sometimes the iOS Simulator just doesn’t cut it either. Enter Reflector, which lets you mirror the screen of your device back to a Mac in order to showcase your demo or even record the screen. Problem solved! :]

Project Management

Instat messages, video chat and remote demos are great “live” tools, but you’ll also need some way communicate asynchronously. In addition to the old standby of email, project management tools let you archive and track comments, issues, tasks, etc.

Here are some more communication tools targeted to project management.

Basecamp

When designing and building any project, it’s essential to have a single place to track changes, feedback, and notes associated with your project. Basecamp offers these services in a package that’s not only useful, but client-friendly as well.

One caution I would offer about Basecamp is as projects grow beyond a certain size, project details can easily become lost in the cracks; sometimes, managing large-scale projects on Basecamp can become a full time job in and of itself.

Lighthouse App

As a solo developer, it’s easy to keep a whiteboard or a paper journal of outstanding bugs and yet-to-be-implemented features. However, this approach doesn’t scale very well when you work in teams. Lighthouse tracks project issues with very little extraneous noise and has just enough features to replace the whiteboard without being overly complicated.

If you’re looking for an iOS companion to Lighthouse App check out Resolve, which lets you manage tickets and receive push notifications right on your device.

GitHub Issues

Much like Lighthouse, GitHub Issues is a lightweight ticket tracking system built on top of Github. This makes it an ideal choice for companies who host code in GitHub. Choosing between Github and Lighthouse mostly comes down to personal preference.

There are a number of more complex bug tracking platforms available, such as Jira and Fogbugz. These platforms have many more features than Github Issues and Lighthouse — but those features come at a cost of extra complexity.

When choosing a ticketing system for your development shop, spend some time upfront and consider which platform best fits your team’s workflow, since switching tracking platforms down the road can be quite a lot of work.

Invoicing, Payroll & Accounting

Tracking cash flow is a crucial aspect of any business. Unfortunately, a lot of organizations overlook this and discover this fact after they encounter serious problems with their finances, at which point it is usually too late to recover gracefully. I’ve seen many companies fold because they thought they had more money than they actually did.

Keeping a careful eye on the financials of a company can alert you to potential problems months, or even years, before they have an impact on your business. Careful recordkeeping keeps you aware of the financial direction of the company and gives you a lot of data on which to base your business decisions.

To that end, here’s some of the accounting software that makes working with that dirty aspect of the business — money — just a little more bearable.

FreshBooks

FreshBooks is an online invoice and time tracking system. A basic FreshBooks account is free and it’s quite affordable to upgrade to more feature-rich accounts as your business dictates. FreshBooks can track your employees’ time, process invoicing for clients and track expenses and reciepts.

More advanced features let clients pay their invoices via credit cards or PayPal. If your organization requires a high level of integration with FreshBooks, you can take advantage of the powerful API to integrate FreshBooks into your existing or future internal systems. With highly customizable reports and both iOS and Android apps available, you’ll be able to keep tabs on your business accounting.

QuickBooks Online

Historically, QuickBooks on the Mac has been a second fiddle to its Windows cousin. However, QuickBooks Online is a full-featured Mac compatible alternative and lets you easily share information with business partners, accountants, advisors, and investors.

FreshBooks helps you keep track of employee cost and incoming client revenue, but QuickBooks can keep an eye on other expenses and costs associated with your business. When tax time rolls around, having solid records can save you a lot of money, not only in proper tax deductions but also expensive hourly accountant fees!

Client Relationship Management

Most freelancers who have been around for a while have at least one story of losing clients simply because they forgot to follow up on client leads! It’s incredibly easy to let potential leads slip through your fingers while you’re occupied with managing existing clients, products, employees, payroll and all the other minutiae associated with running a business.

Even though you might be crazy busy with your business now, you could certainly face a period of famine at some point down the road when work dries up. Without the momentum created today from following up with clients, it’s a lot harder to build a sales pipeline when the lean times are upon you.

Payroll and other monthly obligations can make it extremely hard to recover from a lack of active client work. A Customer Relationship Manager (CRM) tool will help you build and maintain your sales pipeline to avoid critical business errors like ths.

There are lot of CRM options out there, but a lot of them deal with selling products to customers and aren’t ideal for a service-based model like software development. Through trial and error — and a lot of mistakes! — I’ve narrowed down the list to three solutions that work best for mobile consulting shops.

Highrise

This CRM offering from 37Signals is a good choice for lead tracking. While Highrise lacks a number of advanced features such as percentage chance of closing, charting patterns, and forecasting, it does a good job with basic features like creating deals, tracking email correspondence and built-in shared to-do lists.

Insightly

Insightly’s biggest selling feature is its integration with Google Apps. If you’re using Google Apps for email and other business services, Insightly might be the right choice for you. The downside is you need to use Google’s web portal to access the built-in features of Insightly. The feature set is a little richer than Highrise, but its interface can be more difficult to navigate.

Salesforce

Salesforce is the leader of CRM systems; it’s a beast of a software package that does it all. The downside of Salesforce is it undoubtedly contains a large number of features you have absolutely no interest in using — and the price tag reflects this. However, if your organization is large or is planning to scale quickly, then Salesforce might be the solution to your growing organization’s CRM needs.

Source Control and Versioning

If you’re into the code game, then you need to have some sort of version control system in your shop. Without it, you’re running the risk of losing or corrupting all of your most important assets — your code and other associated elements that make up your products or services. Organizations that lose their core assets don’t tend to stick around for very long! :]

There are a lot of tools to version and manage your code, but here are a few of the best:

GitHub

Shared source control is important for everyone from solo developers, but a good version control system is an absolute necessity when working with larger groups like contractors, employees, or even clients.

GitHub makes it easy; from pull requests and code review to complex team management, GitHub does almost everything you’d expect in a good source control system.

GitHub pull requests

Changes

Git, for all of its great features, lacks a really great tool for performing file diffs. Many organizations have attempted to build the ultimate diff tool, but several ones worth a mention are Black Pixel’s Kaleidoscope and Apple’s Diff Engine in Xcode.

At the end of the day, I keep returning to Changes as it has a great minimalistic interface and gives me the direct interaction with my code that I’m looking for.

Changes

SourceTree

Although I’m a big supporter of command-line Git interaction, many developers prefer a visual app to manage their source control activities. SourceTree is a feature rich Git Mac app that makes branching, cloning, creating submodules and everything else in the Git toolkit simple and easy.

SourceTree

Hosting

I started my first consulting company with $5 to host a website. An iOS development shop doesn’t really need more than a simple website and email address to be in business. However, keep in mind that your website reflects the professionalism of your organization, and the days of clients flying in to visit your offices before choosing you for a project are quickly fading.

Building a solid, fast, and beautiful website is an absolute must for mobile consulting shops. Although not all of us are born web designers, the following services will provide a solid back end to your website or online service.

A Small Orange

A Small Orange is my go-to hosting provider; while I’ve had a number of problems with their customer support, in the end they have always been able to resolve my issues. Their service has fantastic uptime and bandwidth and has handled traffic spikes even during the most demanding product launches. Their plans are surprisingly affordable for the amount of computing power they offer.

Digital Ocean

When hosting APIs and other backend services, Digital Ocean is my provider of choice. Their super fast SSD backed servers start at very low prices and have a lot of scalability options. They’ve recently edged out the legendary RackSpace in terms of offerings.

Heroku

Heroku is a fantastic hosting provider during project staging and development. Their free plans are a great way to start developing quickly, pushing off worrying about payment until later in the process. While Heroku can scale to accommodate production environments, the cost of their service scales accordingly.

Parse

Parse is an easy and affordable way to build out server APIs for simple iOS apps; this ease of use is great for clients or teams that aren’t experienced with PHP or Ruby on Rails. Parse also offers analytics and push notification frameworks for more advanced business requirements.

Even though it’s easy to use, Parse has its limitations. As your app’s requirements grow and mature, it can be fairly easy to work yourself into a corner where Parse is no longer be a viable solution. This frequently requires a completely new server build-out, or worse, a sacrifice of your apps features.

Check out our tutorial on Parse to get started: How To Easily Create A Web Backend for Your Apps with Parse

HockeyApp

While TestFlight remains a large and popular player in the field of over-the-air app distribution, HockeyApp is my preferred supplier for its uptime and ease of use. If you’re still manually emailing IPAs back and forth to clients, HockeyApp is worth looking into. As a bonus, HockeyApp has features beyond distribution and hosting, including crash collection and analysis tools.

Where To Go From Here?

The tools from this article are supplementary and should solve a particular problem or save you some time. Business owners often find themselves neck-deep in third-party solutions that promise to make their lives easier, but in the end just complicate matters further. Remember to keep things simple – the most important tools to ensure your success are the ones that brought you to this point!

To be successful in business, study those developers and companies you admire and read as much as possible about the mistakes others have made and the lessons learned as a result.

Check out some some lists and reviews for tools to help you on your way if you want more reading (or podcast listening!) to do:

If you have a tool or service that your shop just can’t live without, come share it with us in the discussion below!

Tools for Running an iOS Consulting Studio is a post from: Ray Wenderlich

The post Tools for Running an iOS Consulting Studio appeared first on Ray Wenderlich.


Viewing all articles
Browse latest Browse all 4370

Trending Articles