2 years in iOS development 做iOS开发的这2年:30而立投身iOS开发嫌晚?

来源:互联网 发布:java发短信 解决方案 编辑:程序博客网 时间:2024/05/21 06:48

http://mobile.csdn.net/a/20120701/2807039.html

Oh, boy, I just realized that I have been developing iOS apps for 2 years now (here’s a revisit to my blog1 year in iOS development).

Wow, I wouldn’t imagine that I could become a REAL professional in this field back 2 years ago, when I bought myself a MacBook Pro 13″.

Initially, I was like “hum, I’ve done enough PowerPoint, meetings, conference-calls. Now I’m gonna look for something cool, better be programming or something, as I was a programming enthusiast in high school and university.”

I talked to several geek friends of mine, some laughed, thinking I was kidding by going back to programming at my 30′s (FYI, in China, in most people’s eyes, software developer as a job, is for young people at their 20′s ); only one  suggested making iPhone apps simply because it was hot.

So I really didn’t have any career pursuit nor ambition at the very beginning, I thought I would become a hobbyist making some games just for fun, but eventually I would go back to a company living a 9-5 life…

Now what?

Well, the card is a little bit of bragging, I admit. But with 7 client projects done (and couple of my own pet projects on and off), I would say I’m really loving a) making iOS apps b) being a freelance developer. I don’t know how things is going to change after I move to Melbourne later this year, but for now, I’m really enjoying what I’m doing and how it fulfills me.

Look back at what I’ve been through in the past 2 years,  I think, keeping on doing following things made me a good iOS developer. Here’s my shameless share:

Stay focused, stay motivated: I was approached by a dozen people saying they’re interested in learning iOS development. When I threw the question “Why?”, some came back like “well, this is a booming market”. Yeah, money is good. Admittedly nowadays iOS developers are financially rewarded pretty well.  But I doubt money can be a good reason for you to spend hours EVERYDAY to learn iOS development techniques. Hype is everywhere in IT industry, sometimes hype misleads people. But to learn a skill, to master a skill, you need to be dedicated and focused.

Speaking for myself, if I wanted to earn a handsome paycheck, I would continue with my SAP career, as SAP consultants earn the most in IT professionals. But I didn’t get motivated by tweaking those enterprise softwares, they’re very very boring no matter what cutting-edge technology is used. Accounting? Manufacturing? Financial reporting? Those are not for average people and boring! While making iPhone/iPad apps, I know my work, even it’s client’s app, is going to be touched by thousands of people, people like my friends, families or the guy taking the same bus as you do. This is simply why I’m loving making iOS apps. And because I really want to make apps that I’m proud of, apps that I want to show off to my buddies, I spend heaps of hours to improve my skills in this area.

Learn new stuff everyday: How do I get better and better in iOS development? Besides learning from projects, which is the most efficient way, I keep consuming a large amount of iOS relevant blogs, tweets and websites everyday. Someone may argue it’s a main cause of procrastination, yes it is. When you have over 30 subscribed RSS feeds all contributed by iOS/Mac developers, your Google Reader becomes pretty busy every morning. I useRead It Later (now called Pocket) andEvernote to fight for this situation (I’m planning to write a blog on how to de-clutter the information clutters). Nevertheless, by reading what other iOS developers are sharing, I got to know a lot cool open-source libraries, tools and designs that can ease my work.

Go versatile: As I’m working solo on client projects most of times, I have to deal with demands other than making iPhone/iPad apps. Once in a LBS project, the client couldn’t find a server guy to develop the API server for the iPhone client, so I had to complete a crush course on Ruby on Rails and write the server-side code, which turned out a lot fun. Knowing a new programming language is always a good thing for coders, not to mention Ruby is fun language to program with. In a recent project, we decided to go for the hybrid-app approach, which combines iOS native client (mainly for Push Notification) with HTML 5 content inside, so again I had to quickly learn HTML 5.

What I’m trying to say is, as a solo freelancer, facing with all sorts of client requirements, I can’t simply say “No, I don’t do HTML nor CSS, I only code with Objective-C”. Knowing many stuffy makes me a kind of go-to-person. But again, my core value is still making iOS apps.

Work with others: I got rare chance to work with other developers in projects. It was in 2 projects, I was like coaching a guy to help me with the development, or I build the key parts of the app (like main UI framework, network access, data storage) and let other juniors to finish the functional modules which was quite a routine job.

I knew my code would be studied and maintained by others, so I paid extra efforts to make my code and comments readable; I knew the network module or storage module I developed would be used by others, so I paid extra efforts to make the API easy to call, hard to fail; I knew the git repository would be pulled by others, so I paid extra efforts to make the commits self-explainable. The good thing out of this is, my way of developing was totally changed, even in a solo project.

Be aesthetic and keen on details: The thing is, I’ve only got 2 hands and limited time, I can’t fulfill all project demands prospects bring to me (but thank you for contacting me!), so I have to make a choice. I choose projects with nice wire-frames over a WORD requirement doc, I choose projects with genuine design over another knockoff. Yeah, being able to pick what you want to work on is awesome isn’t it?

If you hand over a beautifully designed PSD file to me, I will feel obligated to realize it on iPad as perfectly as I can. I think my personality makes me care on details to a great extent, I use Fireworks to check the pixel positions, I use tools to optimize the PNG file size. Internally, I want my code is beautifully written, design patterns are properly used, variables are neatly named.

Look Ahead

I can foresee I’m going to do more iOS projects and become better in iOS development.

Meanwhile, I really want to do something in the community, I don’t know, write a open-sourced app or even a library maybe, put them on github. A recent blog byMatt Gemmell called MGTileMenu and its following API Design inspired me a lot, I hope I can do something like he did.

In addition, I will probably record some screen-casts for local iOS developers in China. Every time I got a chance to talk to an iOS developer in China, I was really excited to share from both sides. Surprising to me, many of them don’t know some famous open-sourced iOS component on github, like SoloComponents and QuickDialog, they are re-inventing the wheels; some still haven’t adopted ARC and are painfully fighting with retain/release/autorelease; few useCocoaPods to manage third-party libs. So I’m planning to share the goodies that helped my development.

Finally, I want to make couple of paid apps on the App Store. The reason I haven’t had any paid apps on the store is that I wasn’t confident enough to come up with a brilliant idea and release something cool in the over-competitive App Store. But, this is going to change, stay tuned!



原创粉丝点击