Do IOS app developers follow any good program practices?

I've had my iPad (original) a little over two years now, and I can say without a doubt, it is the most unstable platform I've used in nearly 30 years of using computers.  Most apps crash routinely, usually while at least one other app is running in the background.  Unloading the crashed app from memory and reopening uually works, but is a huge nuisance (and reason enough to me why iPads are not business-ready, except for specific task applications requiring mobility).  As one trained in both software and systems engineering, with 20 years IT experience mostly in engineering, I have to conclude that IOS app developers use "code and fix" development, with little testing before release.  Of course, in theory it could be that IOS itself isn't well designed to handle multitasking and doesn't provide adequate process isolation.  Either way, it makes for a frustrating experience as a user.
Has anyone else had similar issues?  Thoughts on why?

The original iPad does poorly with multiple apps open, the memory is just too small at 256 MB.  The processor is very slow compared to those in the current generation iPads.  And then couple that with developers who are for the most part independent of Apple and merely submit there products to Apple and you get a totally unpoliced set of apps.  Some are true professionals and follow very good programming practices, one that comes to mind is the GoodReader PDF reader.  Very stable and very powerfully built.  then you get into the gamers and Is is almost like they never heard of writing effecient, compact code.
The issue I see is a tightly controled operating system, with app developers handed a set of specs under which to code, but no real controls other than does the app run and is it free of malicious code.
Just some thoughts.

Similar Messages

  • A feature request for iOS app developers...

    Guys and Gals,
    I have a feature request which I think will benefit iOS app developers  as much as it would benefit your customers.
    Any customer that has more than a handful of apps will eventually forget what some of those apps do or what makes them unique. For instance, I had not used the wonderful hotel finder, Oyster, in over a year. I not only forgot I had it, I also forgot how Oyster's service was different than other hotel finders. I had to refamiliarize myself with the app. Sometimes, this requires returning to the App Store to read the product description again.
    It would be helpful if every app had an About button that would present the product description, summarizing the app's purpose and what differentiates it from similar apps without going into the details of how to use it. 

    Apple discourages the use of About or Help buttons.
    Send feedback to Apple because this is the wrong place to ask; we are all just users like you.

  • Good programming practices:   creating Iterator objects

    Hi,
    This is a question about Good programming practices for creating Iterator objects of ArrayList objects. The following line of code works fine in my program (as ridiculous as it may sound):
            Iterator cheesesIterator = cheeses.iterator();but I was wondering whether Java is automatically inserting the <Type> and new code to make:
            Iterator<String> cheesesIterator = new cheeses.iterator();and therefore whether it is good practice to use these everytime? Thank you. ("full" code shown below:)
    import java.util.ArrayList;
    import java.util.Iterator;
    public class DemonstrateIterator
        private ArrayList<String>  cheeses;
         * constructor:
        public DemonstrateIterator()
            cheeses = new ArrayList<String>();
            cheeses.add("Emmentaler");
            cheeses.add("Cheddar");
            cheeses.add("Stilton");
            cheeses.add("Brie");
            cheeses.add("Roquefort");
        public void listCheeses()
             //make an iterator object of the ArrayList object
            Iterator cheesesIterator = cheeses.iterator();
            while (cheesesIterator.hasNext()) {
                System.out.println(cheesesIterator.next());
            /** Exploring the toString and Super functions. **/       
            System.out.println("\na toString call to Super returns: " +
                                              super.toString() + "\n");
    }

    AJ-Phil wrote:
    Hi,
    This is a question about Good programming practices for creating Iterator objects of ArrayList objects. The following line of code works fine in my program (as ridiculous as it may sound):
            Iterator cheesesIterator = cheeses.iterator();but I was wondering whether Java is automatically inserting the <Type> and new code to make:
            Iterator<String> cheesesIterator = new cheeses.iterator();and therefore whether it is good practice to use these everytime? TFirst, new chesses.iterator() won't compile.
    iterator() is just a method that returns an iterator. It constructs an instance of a private or nested class that implements iterator, and returns a reference to it.
    As for the <T>, when you declare List<String>, that parameterizes that list with type String. The iterator() method returns Iterator<T>. You can look at the source code for yourself. It's in src.zip that came with your JDK download.
    Separate from that is your declaration of that variable as type Iterator, rather than Iterator<String>. Regardless of what you declare on the LHS, the iterator() method returns Iterator<T>. Your bare Iterator is essentially Iterator<Object> or Iterator<? extends Object> (not sure which, or what the difference is), which is assignment compatible with Iterator<T>. If you had declared it Iterator<String>, you wouldn't have to cast after calling next().
    Edited by: jverd on Nov 23, 2008 11:33 AM

  • Good programming practice - Abstract class

    Hi all,
    I have been trying to help another soul in this forum, and came to the conclusion that I don't know good
    programming practice when it comes to abstract classes.
    Is this correct?
    You CAN implement methods in an abstract class, but it's not recommended.
    I have NEVER done this...when is there possibly a need to?
    Regards.
    / k

    Yes, absolutely, you can implement methods in an abstract class. Any method that all subclasses will perform in the same way can be implemented in the abstract base class. If subclasses perform similiar functions depending on their type you declare those as abstract in the base class. Here is a contrived example that I have seen on job interviews.
    Suppose your developing an application that draws on a panel. We want to provide some canned shapes such as a circle, a square and a triangle. We want to be able to draw the shape set or get its color and calculate its area.
    Let's define an abstract base class Shape
    public abstract class Shape{
        private Color myColor;
       //  since color has nothing to do with what kind of shape we're working with, create concrete implementation
       public Color getColor(){
            return myColor;
    public void setColor(Color newColor){
       myColor = newColor;
    // however, drawing the shape and calculation its area are depending on the actual shape.
    public abstract void draw();
    public abstract double getArea();
    // so then Square would be something like
    public class Square extends Shape{
       public double get Area()
          return sideLength * sideLength  // assumes somehow we know sideLength
    public void draw(){
                  // concrete implementation
    }we can do the same things for Circle class and Triangle class.
    And, if you think about it you'll notice that we could have made a Rectangle class and then Square would be a subclass of Rectangle where both dimensions are equal.
    I hope that somewhat strained example helps answer your question.
    DB

  • Any good program for soundboard on skype?

    i got tons of voice clips that i want to use in skype chats but i cant find a good program that i can use as a soundboard any suggstions?

    please?

  • Any Good Programs for Editing MP3's

    I just need to clip off a few seconds of the beginning or ending of MP3's (or AIFF). I used to use Sound Studio when still on Panther OS 10.3, but noticed that it now costs $79 for the current version. Isn't there a less expensive option, maybe even freeware?

    Check out Audacity here: [http://audacity.sourceforge.net>
    It's similar to Sound Studio, and it's free.

  • "Good programming practice" question about writing classes

    I am taking a java class this year and my teacher has taught us to never use global variables in a class (but still private). I find it much easier to explain with a simple example. Say I have a class that looks like this:
    public class Demo
            private int int1, int2;
         public Demo()
              int1 = 1;
              int2 = 2;
         public void demoMethodOne(int int1, int int2)
              //... code using the ints passed to the method
         public void demoMethodTwo()
              //... code directly accessing the private ints of the class
            public int getInt1() { return int1; }
            public int getInt2() { return int2; }
    }My teacher says to ALWAYS use methods of the type demoMethodOne (to pass all of the variables it will use to it) and avoid using the type demoMethodTwo. But in my programming experience, I have found it very repetitive and pointless to use that method in some cases. For example if I call demoMethodOne like this:
    demoMethodOne(demo.getInt1(), demo.getInt2());
    That seems very repetitive but that is how I am told to do it. Should I program that way even if it seems very pointless or is it ok to use "public" variables like in demoMethodTwo. Thanks.

    I think you may have misunderstood your teacher.
    If your object method is doing something with the object's state, then it's perfectly appropriate to modify the object's fields, which embody the state.
    And generally it's good to adopt a functional programming approach, in which there are few side effects. This principle is sort of independent of the previous one.
    The danger is when you treat object fields as global variables (and not as the embodiment of the object's state). In this case the global variable doesn't really represent anything, it's just a place to store data temporarily to avoid designing your methods properly. So for example you'd have two methods, one sets a field and then calls another method, which reads the field; the field doesn't really mean anything to the object as a whole, it's just a lazy way to pass data between the two methods. This is asking for bugs. The correct thing would have been to pass the value as an argument to the second method.
    Also, if you have a method that doesn't really express the behavior or effect the state of an object, but is called just for its return value (like some kind of utility method), then it's pointless and dangerous to make it effect the state of an object.

  • Examples for good programming practice with multiple DAQmx tasks

    I'm writing a program to continuously log data from 8 counters, 8 encoders, and 8 voltages. The proof of concept VI with a single counter was simple and elegant, but scaling up to all signals resulted in a wiring mess. I've been working through the Labview Core courses, and am currently on Core 3. I still haven't come across a discussion on how to work with multiple DAQmx tasks without making a mess of the block diagram. Can anyone point me in the right direction?
    Also, say I have a state machine that has a configure, idle, and logging states. I need to set the initial values of the encoders during configuration, and keep up with their changes while in the idle state so I have appropriate starting values when entering the logging state. Can anyone point to an example that shows how this might be accomplished?
    Thanks

    I'm very familiar with AE's/Functional Globals - but I have struggled in the past with handling multiple DAQmx tasks - particularly when you're using multiple devices and using different types of measurements which require seperate tasks/handling (e.g. such as thermocouples which require extra compensation).
    I'm not even sure I know whare the requirements are for needing multiple tasks - I know you can need multiple tasks for a single device if the type of measurement is different but can you share an Analogue Input task amongst multiple devices?
    I think in hindsight (and without too much thought now) it looks like a good case for Object Oriented LabVIEW - with a base DAQmx class (initialise, configure, start, acquire, stop, close etc.) and then child classes for each type of measurement (with one task associated with each - and private data unique to that specific class). You then hold an array of objects (one for each task) and iterate through each one with dynamic despatch to get the data.
    I don't know your particular experience level of using LabVIEW (and as such, OO may not be appropriate) - but as a wider discussion of 'best practice' it seems like an appropriate method I would use going forward.
    Certified LabVIEW Architect, Certified TestStand Developer
    NI Days (and A&DF): 2010, 2011, 2013, 2014
    NI Week: 2012, 2014
    Knowledgeable in all things Giant Tetris and WebSockets

  • Good programming practices

    I'm writing a straight forward database app with Java to do the logic and GUI. I have a User class and a "create" method to create a new user. In my database, the user table has a bunch of fields (the typical name, address, etc, etc), but only a few are required. I'm trying to figure out the most proper way to do this.
    It would be much easier on the client programmer to pass some sort of hash, but I'd imagine this would generate bad documentation. If I required them to pass 30 parameters, it would get very annoying very quick, but it would generate easy to read api documentation that would play well with IDE's. How would you guys tackle this? Lot's of parameters and good javadocs, or 1 hash and bad generated api documentation.

    cbaechle wrote:
    That's the correlation to the database table. There's a lot of info that can be stored on a user. username, password, email, address, city, state, zip, home phone, cell phone, work phone, etc, etc. It adds up quick and honestly, separating them out will needlessly make it more complicated than need be. I could make an address class I suppose, but for the intention I doubt it would ever be useful.It'll be useful when a single person can have two addresses (e.g., home and office) or when two people live at a single address (data normalization).
    It's the standard way to design a database schema.
    I don't think it's more complicated to have addresses separated out. It's easier to grok because the data is grouped into meaningful bunches. Why would your username be tied to your work phone number?

  • Good programming practice

    There are 2 sets of code which I extracted from a dummy book. The author just want to illustrate 2 ways that we can capture an exception.
    Code set 1_
    import static java.lang.System.out;
    class GoodNightsSleepA {
        public static void main(String args[]) {
            out.print("Excuse me while I nap ");
            out.println("for just five seconds...");
            takeANap();
            out.println("Ah, that was refreshing.");
        static void takeANap() {
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                out.println("Hey, who woke me up?");
    Code set 2_
    import static java.lang.System.out;
    class GoodNightsSleepB {
        public static void main(String args[]) {
            out.print("Excuse me while I nap ");
            out.println("for just five seconds...");
            try {
                takeANap();
            } catch (InterruptedException e) {
                out.println("Hey, who woke me up?");
            out.println("Ah, that was refreshing.");
        static void takeANap() throws InterruptedException {
            Thread.sleep(5000);
    }To u guys who are experienced java programmer out there. Which set of code do u think is better coding practice and u'll usually code that way ? I personally would say GoodNightsSleepA is a better practice. Or u guy have some other better suggestion ? Thank you.

    Thank you to everybody who responded to this thread. Can anyone pls point me to a link that talks about proper OOP system analysis and design. I believe I need some foundation on this, otherwise I can't write a proper scalable code. Like some of u has pointed that the GoodNightsSleepB class will be more appropriate coz it provides flexibility to other user who would like to use it as a subclass. I didn't thought of this b4 until u guys have enlighten me.
    To corlettk, I'm totally new to AOP. I just read some of the links from the google search result. I'm still in a very blur stage about AOP. Am I right to assume that we should only code to include basic business requirement functions(primary task) in our class and make use of AOP to do the secondary task(such as data verification/exception capturing) ? Pls correct me if I'm wrong. Thank you in advance, guys.

  • Is this a good programming practice?

    Putting a "throws Exception" in the constructor.
    class Test
    public Test throws Exception {
    }

    I read somewhere that the possibility that something can go wrong in a constructor is one of the convincing arguments for having exceptions in the first place, since there's really no other (reasonable) way to report an error back to the caller. So yes, have a constructor throw an exception (and declare which one(s) it may throw) is a very fine practice as far as I'm concerned.
    I agree that "throws Exception" is poor practice for all methods. Much better to write "throws Exception1, Exception2, Exception47, ExceptionA, YetADifferentExceptionClass" even if it takes a couple of lines.
    Message was edited by:
    OleVV

  • Which programming language do we use for ios apps?

    Hello,
    I would like to know which programing language do professional ios app developers use for apps which work with an integrated database. I thought firstly about C# but recently Ruby has come into my attention as a good app development language.
    Thank you very much.

    Since you mentioned Ruby, there is the RubyMotion toolchain, which can be used to develop applications for iOS, OS X, and Android.  It isn't free, but then again you won't have to use Objective-C or Swift (or even Xcode for that matter).  You will still need to be able to at least read Objective-C/Swift/Java/whatever, since that is what the various API documentation is written for.

  • Export iOS app for Apple Enterprise Program?

    Does anybody know if it is possible to export an iOS app for the Apple Enterprise Program. Deployment options are Ad Hoc or Apple Store and neither of them seem to work for Enterprise apps. Any help getting pointed in the right direction would be appreciated.

    Yes. I can export Distribution certificates and Distrubution provisioning files and Flash will then export the .ipa file without issue. However when I go to install the app it seems to go over to the iPad and then I get a failure notice on the iPad. I am wondering if I am installing it incorrectly or if there is some step I'm missing. I am dragging the .ipa to iTunes to install it. If I export both the cert and the provisioning files as Development files the app goes on the iPad without issue, however it will expire in a couple of months so that is not what I want. I recently found this link http://www.adobe.com/devnet/digitalpublishingsuite/articles/distributing-enterprise-ios-vi ewer-apps.html which leads me to believe I have to distrubute the .ipa differently, however I was hoping someone had seen a similar tutorial for a Flash ipa. Or is this similar (or exactly) what I need to do?
    Thanks so much for the reply.

  • Use your own iOS app on your own iOS device without buying a developer program.

    This is no question; it is simply a request that you make it possible for people with the free developer program to use their own iOS apps that they built themselves without having to pay $99 a year.
    This is because loads of people want to build small apps for themselves, and can do so easily now that Xcode is free on the AppStore. The main problem with this is that they have to pay to simply do this.
    So this is in a way a petition for all you people who are the same; who have written your own iOS apps for your personal use only, apps that shall not be distributed and only serve to show what you can do or help a family game to get Apple to make this small thing possible for you (us).
    So please post here if you want the same.
    Thank you.

    As always, feel free to use Report a Bug for any samples, doc additions, feature requests or enhancements you'd like to see as well. Add your BR# to this thread for reference, thanks.
    But I wouldn't hold my breath on this one....it would only result in immediate scams.

  • After updating to iOS 6.1.2, neither my iPhone or iPad will update apps thru App Store. Any suggestions?

    After updating to iOS 6.1.2, neither my iPhone or iPad will update apps thru App Store. Any suggestions?

    What happens when you try?
    First, try a system reset.  It cures many ills and it's quick, easy and harmless...
    Hold down the on/off switch and the Home button simultaneously until you see the Apple logo.  Ignore the "Slide to power off" text if it appears.  You will not lose any apps, data, music, movies, settings, etc.
    If the Reset doesn't work, try a Restore.  Note that it's nowhere near as quick as a Reset.  It could take well over an hour!  Connect via cable to the computer that you use for sync.  From iTunes, select the iPad/iPod and then select the Summary tab.  Follow directions for Restore and be sure to say "yes" to the backup.  You will be warned that all data (apps, music, movies, etc.) will be erased but, as the Restore finishes, you will be asked if you wish the contents of the backup to be copied to the iPad/iPod.  Again, say "yes."
    At the end of the basic Restore, you will be asked if you wish to sync the iPad/iPod.  As before, say "yes."  Note that that sync selection will disappear and the Restore will end if you do not respond within a reasonable time.  If that happens, only the apps that are part of the IOS will appear on your device.  Corrective action is simple -  choose manual "Sync" from the bottom right of iTunes.
    If you're unable to do the Restore, go into Recovery Mode per the instructions here.

Maybe you are looking for

  • Curve 9320 does not sync with outlook 2010

    Well, I've seen some posts about this issue, yet, not found much in the way of solutions. I have a curve 9320, oldie but goodie.  I also have Outlook 2010 on this Win 7 Pro computer. The BB desktop software is v.7.1 bundle 2814. Now, when I ask the B

  • Mainstage 2 on top of Logic 8 & Mainstage 1

    Can I get Mainstage 2 from the App store without disturbing my Logic 8 installation? (Mainstage 1 is already installed...)

  • EPMA very slow to import large dimension from interface tables

    I am attempting to import a dimension into the master library from the EPMA interface tables. The dimension is roughly 255,000 members. The import from the interface tables into an empty dimension member is taking close to 3 hours. CPU utilization on

  • "If" for a String

    What the hell am I doing wrong? Here's the text file (aFile.txt): H0101C58F8110C005, 1, 13:15:52 H0100058F8110C006, 1, 13:15:52 H00F0458F8110C006, 3, 13:15:52 H0101C58F8110C005, 1, 13:15:56 H0100058F8110C006, 1, 13:15:56 H00F0458F8110C006, 3, 13:15:5

  • Two different times in MARS Raw Logs.

    Can someone please explain why I see two different time stamps in my MARS Raw Logs below for incidents. Here is a copy of one of our raw logs. I changed some info. 8816265728ÿ05/07/2013 17:00:01ÿfirewallASA1ÿ0.0.0.0ÿ64823ÿ10.*.*.*ÿ636ÿ6ÿ<156>May 07 2