Besonderheiten der Hardware
Smartphones sind mehr als nur tragbare Computer. Sie besitzen mit WLAN, Bluetooth (und in Kürze NFC); HSDPA, UMTS, GPRS und GSM eine ganze Reihe von Kommunikationsschnittstellen unterschiedlicher Bandbreite und Reichweite. Außerdem sind in der Regel ein GPS Empfänger, eine Kamera und diverse Beschleunigungssensoren eingebaut. Alle diese Features erweitern die Möglichkeiten des Programmierers, er muss allerdings auch einige, speziell im Vergleich zum Desktop Computer, Hardwarefeinheiten beachten um eine gut funktionierende App zu programmieren.
Kleine Displays
Das iPhone 4s hat mit dem „Retina Display“ eine besonders hohe Auflösung von 960 x 640 Pixeln auf einer Größe von 3,5 Zoll. Diese hohe Auflösung im Verhältnis zur Bildschirmdiagonale ist in erste Linie dafür geeignet Text sehr sauber (ähnlich klassischem Print) darzustellen. Buttons beispielsweise müssen beim iPhone 4s höher aufgelöst sein um für die Bedienung mit dem Finger groß genug dargestellt zu werden, bzw. werden automatisch von iOS interpoliert wenn das System erkennt, dass die Darstellung auf 480 x 320 Pixeln optimiert ist. Es gibt inzwischen auch größere Geräte wie das Samsung Galaxy Note mit einer Bildschirmdiagonalen von 5,3 Zoll und einer Auflösung von 1200 x 800 Pixeln, allerdings handelt es sich bei diesen Geräten um so genannte Smartlets. Die Wortneuschöpfung „Smartlet“ bezeichnet die Kreuzung aus einem SMARTphone und einem TabLET. Im Durchschnitt kommen die meisten Smartphones immer noch mit etwa 3,5 bis 3,7 Zoll Bilddiagonale aus.
Schwächere Hardware
Ein Prozessor mit 1GHz Taktfrequenz ist in modernen Smartphones keine Seltenheit mehr, für Windows Phone 7 ist er sogar die Mindestanforderung. Trotzdem muss die CPU eines Smartphones vor allem strom- und platzsparend sein um, zusammen mit dem Akku, in der kompakten Bauform Platz zu finden. Sie darf nicht zu viel Abwärme produzieren, da das Gerät nahe am Körper getragen wird und eine aktive Kühlung beim Telefonieren von den Benutzern als störende Lärmquelle empfunden werden würde. Prozessoren, die diesen hohen Anforderungen gerecht werden müssen, können (noch) nicht die Rechenleistung einer Desktop CPU erbringen. Ähnliches gilt für den Arbeitsspeicher. Im PC Markt sind vier und mehr Gigabyte derzeit Standard, das iPhone 4s beispielsweise hat hingegen 512 Megabyte. Einen SWAP Bereich, also einen bestimmten Teil in Flash-Speicher des Gerätes, in den inaktive Teile des Arbeitsspeicherinhalts ausgelagert werden könnten, gibt es nicht. D.h. einem Programm steht unter iOS nicht mehr als der physische Speicher zur Verfügung.
Akku-Betrieb
Smartphones werden als mobile Geräte mit einem Akku betrieben. Dieser darf weder groß noch schwer sein, da der Nutzer das Gerät permanent mit sich führt. Der Akkubetrieb ist für den Nutzer eine Selbstverständlichkeit und wird nur dann beachtet, wenn das Smartphone durch kurze Laufzeit negativ auffällt. Da der Programmierer, durch die Art wie er seinen Code gestaltet, großen Einfluss auf die Akkulaufzeit haben kann, ist es sehr wichtig diese bei der Programmierung im Hinterkopf zu behalten.
Spezielle Eingabegeräte
Smartphones sind mit keinem der üblichen Eingabegeräte verbunden. Tastatur und Maus müssen daher über das Touchscreen abgebildet werden. In Bezug auf das Zeigegerät hat das Touchscreen was das Handlings betrifft einige Vorteile. Das Bewegen des Mauszeigers zu einem Element mit darauf-folgendem Klick lässt sich durch ein direktes Antippen des gewünschten Elements relativ einfach und geradlinig ersetzen. Tastatureingaben hingegen sind durch die kleinen Tasten des eingeblendeten Keyboards für den Benutzer anstrengend. Außerdem wird gut die Hälfte des zur Verfügung stehenden Anzeigebereichs und damit vielleicht ein wichtiger Teil des Inhalts, verdeckt. Durch Gesten (spezielle Fingerbewegungen auf dem Touchscreen) und Bewegung des Smartphones, z.B. neigen, schütteln, etc. eröffnen sich zusätzliche Möglichkeiten der Steuerung.