Dipende molto dal contesto. Per me "nativo" significa che un'applicazione utilizza le funzionalità e i meccanismi forniti dal sistema operativo, piuttosto che implementarne uno proprio. Ciò può valere per le funzionalità dell'interfaccia utente (pulsanti, finestre, finestre di dialogo per la scelta dei file), nonché per le funzioni nascoste (ad es. Integrazione con "Apri con ...").
Ad esempio, su Windows, un'app nativa userebbe "WinAPI" per ottenere gli stessi pulsanti, barre di scorrimento, ecc. Di altre applicazioni. Si comportano esattamente nello stesso modo nelle app di sistema (blocco note) delle app di terze parti native.
Le applicazioni Java usano spesso "Swing" e sembrano completamente diverse, perché disegnano da sole i loro controlli, piuttosto che usare quelli di sistema. Il vantaggio è che il programma ha lo stesso aspetto su tutti i sistemi operativi.
Un'altra opzione per creare una GUI è un toolkit multipiattaforma come "QT". QT chiederà al sistema operativo di disegnarne i controlli, quindi dovrebbero apparire molto nativi, indipendentemente dal fatto che tu stia eseguendo Windows, OSX o Linux. Una casella di testo QT apparirà come una casella di testo di Windows, tuttavia non è esattamente una nativa, ma una sorta di emulazione. Potresti notare piccole differenze nei dettagli (ad es. Menu contestuale, metodi di input, ecc.).
Nota quando le persone dicono "nativo", spesso significano che un programma viene compilato in codice macchina anziché in un codice intermedio, che viene eseguito in una macchina virtuale (come i programmi Java e .NET). Negli esempi precedenti, WinAPI e l'app QT utilizzano il codice macchina, mentre il programma Java viene compilato in bytecode Java. Questo utilizzo è un po 'problematico al giorno d'oggi, perché molti utenti considererebbero un'applicazione .NET ben fatta nativa per Windows: è solo un file .exe, utilizza esattamente gli stessi controlli e le stesse API ed è quasi indistinguibile da un programma compilato per codice macchina.
Allo stesso modo, prenderei in considerazione un programma che utilizza GTK, conosce la struttura del file system Unix e forse viene fornito in un pacchetto .deb nativo per Ubuntu o Gnome. Esistono persino app Gnome di prima parte scritte in javascript che si potrebbero chiamare native! Lo stesso vale per le app "Metro" di Windows 8, che possono essere scritte in una varietà di lingue, alcune compilate, altre no.