1 Comment

An iPhone with a bigger screen should be easy.

If you’ve been on the internet any time within the last few months, you’ve heard that there’s a new iPhone coming. Well at least, we think there’s a new iPhone coming. As always, people have been talking about a new form factor for this new device, especially since people got the same form with the iPhone 4S in October. If Apple keeps with it’s pattern-ish development scheme, we’re due for one anyways. We have no way of telling what the phone might look like this time around (no prototypes lost in bars), however, the major thing that people are clamoring for on the internet is a larger screen. Personally, I’m not sure how I feel about it. I would like a larger screen as long as it doesn’t change the size of the actual device that much. I’d like to still be able to fit my phone in my pocket (here’s looking at you Galaxy Note owners).

All this talk of a larger screen has gotten some iPhone developers in an uproar. They’re tired of Apple changing things on them at the last minute and then expecting them to jump through the hoops to ship their code to a new device. It happened when Steve announce the retina display on the iPhone 4, and they’re worried about what they may have to do in a hurry this time around.

The most prominent rumor at the moment is that the screen will stretch vertically but very little if at all horizontally. As a rookie iOS developer, I see this as a very minor issue. Have you ever noticed that when you flip your iPhone sideways, the UI still looks good? That’s because one of the tools that Apple has given developers, called struts and springs, make sure that your app’s user interface items have a few rules to follow when the height or width changes. When Apple introduced Mac OS X 10.7 last year, developers got another layout tool, called auto layout. This one allows you to define the way that your interface items should move with relation to each other. You can set a fixed amount of space or some flexible space, and the layout engine should do it’s thing. I’d be willing to bet that if Apple puts a bigger screen on the iPhone we can count on them shipping auto layout to developers as well.

With both of these tools at developers fingertips, I find it hard that many iOS developers will be inconvenienced ┬áby a larger screen. Yes there are apps out there that will be, mostly games or applications that have all custom graphics, but for the most part it should be okay. With the screen getting taller, your apps should expand to show more content. If you’re using the default UIKit items in your app, Apple has probably re-written them to take advantage of the extra screen real estate. Custom classes might take some work, but some clever code in the iOS 6 runtime could take care of that.

On the subject of fragmentation, which many are also worried about, I’m also not that worried. Again, a majority of apps should be able to scale vertically and keep their layout mostly┬áconsistent. It would mean another size of images that designers would have to work on, but really it’s a scaling issue, not a complete reworking, which makes a total of 5 (retina and non retina for both iPhone and iPad plus this new one). Apple has commented over and over again on Android fragmentation, so I doubt they would let it happen to their own platform. Expect some special magical code to be shipping with a larger iPhone to make it all work out. At any rate, we should hear more about this when Apple talks about the platform at WWDC, so we don’t have long to wait.

Advertisements
Leave a comment

Cross computer syncing for CS Students

In the world of file syncing and storage, we have a few options. You can take your files and put them on a flash drive and carry them wherever you go. You could upload them to Dropbox or Google Drive or whatever your cloud storage provider of choice is and then download them where you need them or use the official client. Those are all fine and good options, but I want something more.

I’m a big fan of git. When I’m working on my larger assignments, I like to be able to roll back or save my spot without messing things up (by the way did you know that github has free student accounts as long as you ask?). You can then push your changes up to github or bitbucket or your own personal git server or any of the above options. Then you have to remember of course to pull them back down to your personal computer if you’ve been working in the lab and if you have changes then you have to go through stashing them and applying them or making commits and merging. It all works fine but it’s tedious and you can forget to do things and then you can mess up your whole project.

So here’s what I want to do. I want to be able to sync my files regardless of the system that I’m working on automatically. That’s the thing I really love about dropbox is that changes get pulled down on my mac as soon as I turn it back on, so if I didn’t have it with me then I can keep working. Now I know for a fact that at IU, the cluster of computers that we have accounts on called the burrow runs RHEL and if you remember to enable X forwarding you can open up a window in firefox and upload your files to dropbox there. But what if you don’t know that you can do that or if you don’t have permission? What I’d really like to happen is for git to check the status of my repository remotes when I wake up my computer and notify me of any new commits that I need to take care of. Ideally it would look at which files had changed on each machine and do an automatic merge if I wasn’t working on the same file in both places. If there were changes that needed to be taken care of, I would get notified and then I would have options as to what I wanted to do with the repositories.

You can extend git and when you type git someCommandNameHere git will search your path for a program called git-[someCommandNameHere] and then run it. I assume that it can be anything from a shell script to another executable compiled program.

Basically, I want everything to work like magic. Is the magic possible or is it just better to do it all the old-fashioned manual way?

Leave a comment

First Project: Curricula

Well I said that this blog was going to be partially about my adventures as a software developer so here it goes.

This is my first real project. Thus far my development background has been projects for my classes, and the were pretty small. Now I’m going to try to make the leap to a real project while attempting to teach myself along the way. Sounds scary right?

As a college student, it’s hard sometimes to follow your classes and know where you stand in all of them. Sure there are ways to do it, there are spreadsheets that you can set up or a few applications that you can download to your computer or iPhone or iPad, but I’m not exactly satisfied with them. I want one place where I can go to get all the information about my grades, but more importantly where I can go for anything that the course involves. That’s what Curricula is. It’s a course manager for the college or high school student. This week I got a few books in the mail from Amazon, both from Big Nerd Ranch (yes it’s a real place). I’ll be starting off by working through the Mac OS X Programming book and then move on to iOS after that. Hopefully I’ll be able to finish at least the Mac side of the project by the end of the summer. I’ll be posting more updates about the project here on the blog. If you as a student have any suggestions for what you would want in a product like this (or even if you just want to tell me that you think it’s a good idea, you can leave a comment here or you can hit the Contact form above. I’m really looking forward to my first real development project and I really appreciate your support.

Thanks for reading.

Leave a comment

Hello world!

Hi there,

Welcome to my blog. Let me tell you a little about myself. My name is Brad Ringel, I’m 21 years old and I’m from the suburbs of Cleveland Ohio. I currently attend Indiana University in Bloomington where I’m studying Computer Science. I used to be a Biology major and before that I was a Chemistry major, but that’s a different story. Now I get to concern myself with what’s going on in the technology world which is great for me. I like to program in Java, I know a little bit of Scheme and I’m teaching myself Objective-C and a little C on the side. I also love pretty much everything a self-respecting nerd should love which includes but is not limited to: Star Wars, Star Trek (gasp, I like both it’s okay), new tech products, old tech products, dragging people along to see nerdy movies with me, etc. This blog is going to be about what’s happening in the tech world but also in my life as a developer/student/person. Hope you enjoy, hit the subscribe link if you’re really interested in what I have to say.

Thanks for Reading,

Brad