Header.tsx, Home.tsx) kullanılmaz. Her yeni özellik, sayfa veya bileşen kendi ismini taşıyan bir klasör içine açılır.index.tsx (veya index.ts) ismini alır.views klasörü açılır (örn. src/pages/home/views) ve içindeki her alt parça (hero, about vs.) yine kendi klasörüne ve kendi index.tsx dosyasına sahip olur.stylesheet.ts isminde bir dosya açılır.useStyles gibi ekstra bir hook ile değil, doğrudan React Native'in StyleSheet.create({ container: { ... } }) metodu kullanılarak oluşturulur ve export default stylesheet; olarak dışa aktarılır. Bileşen içinde import stylesheet from "./stylesheet"; şeklinde kullanılır.userSelect, backdropFilter gibi) kesinlikle webStyle({ ... }) yardımcı fonksiyonu kullanılır.types.ts) yerine her zaman tekil olarak type.ts kullanılır.Type Export Syntax (as default): Tipleri dışarı varsayılan (default) olarak aktarırken export default TypeName; KULLANILMAZ. Bunun yerine "multiline" kuralına sadık kalınarak süslü parantezler içinde aktarılır:
export type {
TypeName as default
};
eol-last). Satır sonlarında noktalı virgül (;) zorunludur (semi: always).{ açıldıktan sonra her bir eleman kesinlikle alt alta yeni satırlara yazılır.Array & Hook Destructuring: Array elemanları da alt alta dizilir. Bu kural React Hook'ları için SIKI BİR ŞEKİLDE geçerlidir:
const [
status,
setStatus
] = useState(false);
JSX Attributes: Bileşenlere geçirilen property'ler (props) asla tek satıra sıkıştırılmaz, her biri ayrı bir satıra yazılır ve kapanış simgesi (>) hizalı şekilde yeni satıra atılır.
Render Props / Callback Parametreleri: Fonksiyonel proplarda (icon={({ color, size }) => ...}) parametreler destructure ediliyorsa onlar da mutlaka alt alta (yeni satırda) yazılır.
else blokları uzatılmaz, iç içe (nested) if döngülerinden kaçınılır.if ifadesi ile açılış parantezi ( arasında asla boşluk bırakılmaz (if(kosul)).Süslü parantez { hemen aynı satırın sonunda, kendisinden önce sadece bir adet boşluk bırakılarak açılır.
if(!condition) {
return;
}
Export Default Bitişikliği: Dosya sonlarındaki export default ifadesinden önce boş bir satır (enter) KESİNLİKLE bırakılmaz. Hemen önceki fonksiyonun veya bloğun kapanışına (}) bitişik olarak yazılır.
const Home = () => { ... }) oluşturulur.const renderHero = () => { return <Hero/>; }; gibi küçük okuma fonksiyonları yazılıp ana return içinde çağrılır.Custom... ön eki verilir (Örn: CustomHomeIcon, CustomFooter) ve böylece ana yapı çok daha sadeleştirilir.colors.system: Sistem overlay durumları (hover, pressed vb.) ve state (success, warning) arkaplanları.colors.content: UI elementleri. Örn: colors.content.text.high, colors.content.icon.mid, colors.content.container.subtle veya colors.content.border.emphasized.colors.project: Projeye özel isimlendirilmiş hex renkleri (Örn: colors.project.heroWhite, colors.project.menuTitle, colors.project.switcherGlassBackground).spaces.spacingXs, spaces.spacingSm, spaces.spacingMd, spaces.spacingLg, spaces.spacingXl değerleri padding ve margin için kullanılır.radiuses.full, radiuses.soft.md, radiuses.sharp.sm gibi yuvarlamalar kullanılır.configs.headerSpace).NCoreUIKitLocalize.useContext() çağrılarak elde edilen localize("key") fonksiyonu kullanılır. Stringler UI kısmına asla ham yazılmaz.NCore bileşenleri ncore-ui-kit'ten import edilir ve projenin iskeletini oluşturur:
PageContainer: Ana sayfa/görünüm kapsayıcısı. isScrollable, isCustomPadding, scrollViewStyle, scrollViewProps özelliklerini yöneterek tüm sayfayı sarmalar.MainHeader: Navbar/Header bileşeni. Stack navigator'u sarmalayarak (renderRight ile aksiyon butonu ekleyerek) global ve yapışkan (isWorkWithSticky) üst menüyü kurar.NCoreUIKitMenu: Menü ve drawer kontrolleri için mantık aracı. NCoreUIKitMenu.load({ ... }) ile başlatılır, NCoreUIKitMenu.open({ id: "main-menu" }) ile global state'den çağrılır.Text: Kütüphanenin standart tipografik kurallarını (örn: variant="heroTitle", variant="bodyMediumSize") okur ve metinleri customColor={colors.project.heroWhite} şeklinde boyar.HighlightButton: Üzerine gelindiğinde veya tıklandığında vurgu alan (Hover, pressed state) CTA (Call-to-Action) butonu. spreadBehaviour, customTextColor, isLoading özellikleri alır.Button: Normal eylem butonu. icon render prop'u ile fonksiyonel component olarak icon içeriği alabilir.ThemeSwitcher & LocaleSwitcher: Kütüphane içinden çağrılan hazır aydınlık/karanlık mod veya dil geçiş butonlarıdır.SiteLogo: Başlık veya menü için optimize edilmiş resimli logo gösterici.Seperator: Arayüzdeki elemanları ayırmak için kullanılan dikey veya yatay standart ayırıcı çizgidir.Bu kurallar sadece Front-End projeleri için geçerlidir, Back-End bağımsız değerlendirilir.
yarn lint ve yarn type-check komutlarını çalıştıracaktır.